Cave generation parameters
In Pikmin 2, the files that define a cave's settings can be found in /user/Mukki/mapunits/caveinfo
. For instance, the Emergence Cave uses tutorial_1.txt
.
Contents
Header
Each file starts with a simple block titled CaveInfo
. It contains only one parameter, {c000}
, with takes two values, a 4
and the number of sublevels in the cave.
After the opening block, there is a lone number. This number is, once again, the number of sublevels in the cave. After this comes a series of blocks, with each group of 5 belonging to a sublevel.
Sublevel
Each sublevel starts with a block titled FloorInfo
(the comment for the first sublevel has a number to the left of it; this is the number of sublevels).
FloorInfo
This block has a large number of parameters that determine how the sublevel works.
To do: List the parameters.
TekiInfo
The next block in the sublevel is titled TekiInfo
, and determines what enemies – or other objects – to spawn.
The first number in the block is the total of entries. It is titled num
. Each entry consists of two lines. The first line in an entry determines the object's class, what treasure it has inside, how many to spawn, and how likely this object is to be used to fill the enemy slots. The second line of each entry is the type of object.
Class
The first word in the first line contains both the object class (fire geyser, Red Bulborb, clover, etc.), using its internal name, starting with an uppercase. If it is an enemy and is carrying something inside it, the internal name of that object's class is also included in that word, in lowercase, after an underscore (e.g. Chappy_key
).
Amount
The second word is a number, where the last digit is the spawn distribution weight (ranges from 0 to 9, explained here) and the other digits are the minimum amount to spawn. If only one digit is present, that determines the distribution weight, and the minimum amount defaults to 0. A distribution weight of 0 means that the game will only spawn the minimum amount and no more. This line is commented with weight
.
Type
This number controls what type of object this is, and where it spawns. The number ranges from 0 to 8, and most also correspond to a group of spawn coordinates. When spawning an instance of this object, the game picks a random coordinate from the group, if applicable. This line is commented with type
. The following table lists the possible numbers, and the comments on the various unit layout files, in /user/Mukki/mapunits/arc/*/texts.szs/layout.txt
, is also included due to them helping understand what each number means.
Group | Content | Notes | layout.txt comment
|
---|---|---|---|
0 | Enemy, spawn coordinate group A | Teki A
| |
1 | Enemy, spawn coordinate group B | Teki B
| |
2 | Treasure | There is no cave definition file that uses this number. | Item
|
3 | Unused?[unsure] | There is no cave definition file or cave unit definition file that uses this number. | |
4 | Unknown[unsure] | FixObj
| |
5 | Enemy, spawns in dead ends | No cave unit definition file has a spawn coordinate with this number; the coordinate is likely calculated automatically given how simple and consistent it is. | |
6 | Plant | Plant
| |
7 | Leader spawn position | Objects can't use this as the type. This is only used inside cave unit definitions to specify a possible player starting spot in the cave. The Y coordinate is ignored; it snaps to the ground. | Start
|
8 | Enemy, spawn coordinate group C | Teki F
|
Enemies can only use types 0, 1, 6, or 8.
Example
{f002} 4 5 # 敵最大数 (...) # TekiInfo { 2 # num Tadpole 23 # weight 0 # type Sokkuri 9 # weight 1 # type }
Assuming there's enough space in the sublevel, this would make the game spawn 2 Wogpoles, and then spawn 3 more randomly picked enemies, with each enemy having a 3/12 chance (three in twelve because 3 + 9 = 12) of being a Wogpole, and a 9/12 chance of being a Skitter Leaf. Any Wogpole in this sublevel will spawn in the set of coordinates that belong to group 0, whereas any Skitter Leaf will spawn on the coordinates of group 1.
ItemInfo
The next block is titled ItemInfo
. It controls how treasures spawn. Treasures inside enemies aren't included here.
To do: Expand.
GateInfo
The next block is titled GateInfo
and controls what gates will appear.
To do: Expand.
CapInfo
The final block in a sublevel is titled CapInfo
. It determines what objects to spawn in dead ends.
To do: Expand.