Reference: SpawnPackageFile Format

Purpose

Defines spawn packages names, their associated spawn lists and spawn data.

File Format

INI format. Delimiters: equals (=) and comma (,)
Comment character: semicolon (;)

Properties

Property Description
DefaultFlags Integer. Special case. Sets the default Flags property for all subsequent [ENTRY] until DefaultFlags is redefined, or the end of file is reached. Refer to Flags for a list of possible values.
Zone Integer. Unused feature. Specifies the ZoneDef ID for all entries in this file.
[ENTRY] Begins a new entry.
Name String. The internal name of the package. Should not contain spaces. Cannot exceed 56 characters (including null terminator).
Spawn Integer,Integer. Adds a creature to the spawn list. When a SpawnPoint spawns a creature, it will randomly select one from the list. The spawn list can hold a maximum of 12 possible types.

The first integer is the CreatureDef ID. This is actually an unsigned short integer (only accepts values from 0 to 65535).

The second integer is the spawn chance, in shares. Shares should not be less than 1.

Shares Integer. Sets the maximum shares when rolling drop rates. This should be set equal to the total share chances of all spawn options.
Flags Integer. Sets optional flags. Refer to the chart for the flags and their associated values. To set multiple flags, add their values together. The "SP" column describes the equivalent SpawnPoint spawnPackage modifier attribute (like #F1954)
Flag                  Value   SP     Purpose
FLAG_FRIENDLY            1     F     Friendly, unattackable.
FLAG_HIDEMAP             2     H     Hide the minimap dot.
FLAG_NEUTRAL             4     N     Spawn neutral.
FLAG_INVINCIBLE          8           Obsolete, unused.
FLAG_FRIENDLY_ATTACK    16     A     Friendly, attackable by mobs.
FLAG_ENEMY              32     E     Spawn hostile.
FLAG_VISWEAPON_MELEE    64     M     Sets visible weapon to melee.
FLAG_VISWEAPON_RANGED  128     R     Sets visible weapon to ranged.
Further notes:

FLAG_FRIENDLY: Typically used for all NPCs.

FLAG_HIDEMAP: May only work in client 0.8.8 or later.

FLAG_NEUTRAL: Neutral mobs have yellow/orange names and will not aggro unless attacked.

FLAG_FRIENDLY_ATTACK: Allows hostile mobs to aggro and attack them.

FLAG_ENEMY: This is not needed if CreatureDef aggro_players=1

FLAG_VISWEAPON_MELEE and FLAG_VISWEAPON_RANGED: Will only work if the CreatureDef eq_appearance property is set. Normally this property is only used by players (since it describes which items are equipped). These flags were intended to allow spawning museum players with their weapons in hand.

Divide Integers(3). Format:
Divide=Location,Orient,ShareThreshold

Added as a hack to get certain SPM spawns to work correctly. This sets an arbitrary dividing line (north/south or east/west) which will divide a map into two areas. One set of mobs will spawn on one side, while a different set will spawn on another.

Location: this is the coordinate, either X or Z, to split the map.

Orient: the orientation of the division line (1 = vertical, 2 = horizontal). If vertical, Location is the X coordinate to split the zone into east/west sides. If horizontal, Location is the Z coordinate to split north/south.

ShareThreshold: The minimum randomizer value to guarantee a spawn on the second half of the divider. That is east (right) or south (down) from the line.

Example SpawnPoint (taken from Europe):

[ENTRY]
Name=2a_rhl_sectionA8_general
wanderRadius=100
Shares=80
Divide=71000,1,41
Spawn=2291,10  ;Bristle Boar (26)
Spawn=2292,10  ;Bristle Boar (27)
Spawn=2293,10  ;Slag Worm (26)
Spawn=2294,10  ;Slag Worm (27)
Spawn=566,10  ;Attercop (28)
Spawn=567,10  ;Attercop (27)
Spawn=2326,10  ;Slider (27)
Spawn=2327,10  ;Slider (28)
Note that the total shares adds up to 80, and is appropriately set with Shares=80. The divider is set to divide the map vertically into left/right, east/west sides at coordinate (X=71000). Because there are 80 shares, the spawner would normally generate a random number from 1 to 80. However, on the left side it will now roll from 1 to 40 (the first 4 mob types in the list). On the right side it will roll from 41 to 80 (the last 4 mob types in the list).
loyaltyRadius Integer. Sets the loyalty radius. Any creature attacked will automatically pull any other mobs within that range. 10 units = 1 meter.
spawnDelay Integer. The respawn delay, in seconds. If the SpawnPoint has an explicit respawn delay, that will be used instead of this package default.
wanderRadius Integer. If the creature is idle (has no target) then it will randomly walk around its SpawnPoint up to this far away. 10 units = 1 meter. If the SpawnPoint has an explicit wander radius, that will be used instead of this package default.
ScriptCall Bool. If set to 1, the instance script will be notified when a creature spawned by this package is killed. This is useful to trigger step-up spawns or boss chests.

For example, if the package is named
Name=2a_rhl_sectionA8_general

then your instance script will need to have the label
:2a_rhl_sectionA8_general

Refer to the Instance Folder and Instance Scripting Commands for details on scripts.

Sequential Bool. This feature was made obsolete by ScriptCall, but is still available for use. If set to 1, this simulates the SpawnPoint Sequential property. the instance script will be notified when a creature spawned by this package is killed. This is useful to trigger step-up spawns or boss chests.

For example, if you need to handle a kill, and the package spawns this:
Spawn=735,100

then your instance script will need to have the label
:onKill_735

Refer to the Instance Folder and Instance Scripting Commands for details on scripts.

PointOverride Integer,Integer. Line format:
PointOverride=PropID,CreatureDefID

Defines a special case where a specific SpawnPoint (referenced by its ID) will always spawn a certain creature.

This was implemented basically as a hack to get some Down Below miniboss SpawnPoints to work correctly without modifying the official scenery data. It is normally recommended to edit the SpawnPoint with appropriate spawn data (or use a separate spawn package) instead.

Use multiple lines for multiple overrides. There is a hardcoded limit of two point overrides for each package.

UniquePoints Integer. Use this to randomize a spawn (such as a boss) between one of several possible locations. This value should be set to match exactly how many SpawnPoints are using this package.