Difference between revisions of "Cave generation parameters"

From Pikmin Technical Knowledge Base
Jump to navigation Jump to search
(Created page with "In ''Pikmin 2'', the files that define a cave's settings can be found in <code>/user/Mukki/mapunits/caveinfo</code>. For instance, the Emergence Cave uses <code>tutorial_1.txt...")
 
(→‎TekiInfo: Expansion.)
Line 17: Line 17:
 
The next block in the sublevel is titled <code>TekiInfo</code>, and determines what enemies to spawn.
 
The next block in the sublevel is titled <code>TekiInfo</code>, and determines what enemies to spawn.
  
The first number in the block is the total of entries. It is titled <code>num</code>. Each entry consists of two lines.
+
The first number in the block is the total of entries. It is titled <code>num</code>. Each entry consists of two lines. The first line in an entry determines the enemy's type, what object it has inside, how many to spawn, and how likely this enemy is to be used to fill the enemy slots. The second line of each entry is the type of spawn coordinate to pick from.
  
The first line in an entry determines the enemy's type, what object it has inside, how many to spawn, and how likely this enemy is to be used to fill the enemy slots. The first word contains both the enemy type (using its internal name, starting with an uppercase), and, if the enemy is carrying something inside it, the internal name of the object, after an underscore. The second word is a number, where the last digit is the spawn distribution weight (ranges from 0 to 9, explained [[Cave enemy spawning|here]]) and the other digits are the minimum number to spawn. A distribution weight of 0 means that the game will only spawn the minimum number and no more. This line is commented with <code>weight</code>.
+
====Enemy type====
 +
The first word in the first line contains both the enemy type (using its internal name, starting with an uppercase), and, if the enemy is carrying something inside it, the internal name of the object, after an underscore.
  
The second line of each entry is the "position type". It controls where the enemy spawns. The number ranges from 0 to 8, and it determines which group of spawn coordinates the enemy goes to. This line is commented with <code>type</code>. Although objects belonging to the right groups isn't a hard rule, each group was designed for a type of object. The following was obtained by reading the comments on the various [[Cave unit definition file|unit layout files]], in <code>/user/Mukki/mapunits/arc/*/texts.szs/layout.txt</code>.
+
====Enemy amount====
 +
The second word is a number, where the last digit is the spawn distribution weight (ranges from 0 to 9, explained [[Cave enemy spawning|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 <code>weight</code>.
 +
 
 +
====Spawn coordinate type====
 +
This number controls where the enemy spawns. The number ranges from 0 to 8, and it determines which group of spawn coordinates to choose from when deciding where to spawn the enemy. This line is commented with <code>type</code>. Although objects belonging to the right groups isn't a hard rule, each group was designed for a type of object. The following table lists the numbers, and was obtained by reading the comments on the various [[Cave unit definition file|unit layout files]], in <code>/user/Mukki/mapunits/arc/*/texts.szs/layout.txt</code>.
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 44: Line 49:
 
| 8 || Enemies, group C || || <code>Teki F</code>
 
| 8 || Enemies, group C || || <code>Teki F</code>
 
|}
 
|}
 +
 +
===Example===
 +
<pre>
 +
{f002} 4 5 # 敵最大数
 +
 +
(...)
 +
 +
# TekiInfo
 +
{
 +
2 # num
 +
Tadpole 23 # weight
 +
0 # type
 +
Sokkuri 9 # weight
 +
1 # type
 +
}
 +
</pre>
 +
 +
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===
 
===ItemInfo===

Revision as of 22:39, 17 October 2016

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.

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 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 enemy's type, what object it has inside, how many to spawn, and how likely this enemy is to be used to fill the enemy slots. The second line of each entry is the type of spawn coordinate to pick from.

Enemy type

The first word in the first line contains both the enemy type (using its internal name, starting with an uppercase), and, if the enemy is carrying something inside it, the internal name of the object, after an underscore.

Enemy 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.

Spawn coordinate type

This number controls where the enemy spawns. The number ranges from 0 to 8, and it determines which group of spawn coordinates to choose from when deciding where to spawn the enemy. This line is commented with type. Although objects belonging to the right groups isn't a hard rule, each group was designed for a type of object. The following table lists the numbers, and was obtained by reading the comments on the various unit layout files, in /user/Mukki/mapunits/arc/*/texts.szs/layout.txt.

Group Content Notes layout.txt comment
0 Enemies, group A Teki A
1 Enemies, group B Teki B
2 Treasures There is no cave definition file that uses this number. Item
3 Unused There is no cave definition file or cave unit definition file that uses this number.
4 Unknown[unsure] FixObj
5 Unknown[unsure] Used in some cave definition files, but not used in any cave unit definition file.
6 Plants Plant
7 Leader spawn position?[unsure] Start
8 Enemies, group C Teki F

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.