Scenario Main Values: Difference between revisions

From SkyTemple
GinnieH20 (talk | contribs)
Created page and added the first few cells in the table, along with the description.
 
GinnieH20 (talk | contribs)
m Continued to expand the table and fiddled around with some formatting
Line 5: Line 5:
For scripts that check for specific $SCENARIO_MAIN values using if-statements (such as to determine what dialogue should be played at that point in the story), you will usually see the value mentioned in a format like the following, which is taken from one of the partner's overworld dialogue scripts: <code>if ( scn($SCENARIO_MAIN) >= [26, 5] )</code> . In this example, the game is checking to see if the current $SCENARIO_MAIN value is ''greater than or equal to'' <code>[26, 5]</code> and, if that is indeed the case, then the partner's overworld dialogue will be some variation of "We're so close... There's no way we can give up now, [hero]!"
For scripts that check for specific $SCENARIO_MAIN values using if-statements (such as to determine what dialogue should be played at that point in the story), you will usually see the value mentioned in a format like the following, which is taken from one of the partner's overworld dialogue scripts: <code>if ( scn($SCENARIO_MAIN) >= [26, 5] )</code> . In this example, the game is checking to see if the current $SCENARIO_MAIN value is ''greater than or equal to'' <code>[26, 5]</code> and, if that is indeed the case, then the partner's overworld dialogue will be some variation of "We're so close... There's no way we can give up now, [hero]!"


<sub>Because some scripts have identical names, the column for the script locations of each $SCENARIO_MAIN value will also include the name of the folder/map they are found in.</sub>
<sub>Because some scripts have identical names, the column for the script locations of each $SCENARIO_MAIN value will also include the name of the folder/map they are found in. For example, the $SCENARIO_MAIN value that gets triggered following the Project P cutscene can be triggered by four seprate enter scripts that have identical names (''enter01.ssb'' and ''enter02.ssb'', respectively), so the corresponding map/folder names are also included to help users know which enter scripts to look for.</sub>
{| class="wikitable"
{| class="wikitable"
|+
|+
Line 19: Line 19:
|
|
|Immediately <u>BEFORE</u> the personality quiz
|Immediately <u>BEFORE</u> the personality quiz
|Found in ''unionall.ssb'' under
|Found in '''''unionall.ssb''''' under
<code>EVENT_DIVIDE_OPENING</code>
<code>EVENT_DIVIDE_OPENING</code>


Line 30: Line 30:
|
|
|Immediately <u>AFTER</u> the personality quiz
|Immediately <u>AFTER</u> the personality quiz
|Found in ''unionall.ssb'' under
|Found in '''''unionall.ssb''''' under
<code>EVENT_M00A_01</code>
<code>EVENT_M00A_01</code>


Line 41: Line 41:
|
|
|
|
|Found in ''unionall.ssb'' under
|Found in '''''unionall.ssb''''' under
<code>EVENT_DIVIDE_FIRST</code>
<code>EVENT_DIVIDE_FIRST</code>


Line 55: Line 55:
!'''Chapter 1'''
!'''Chapter 1'''
|Partner’s Relic Fragment was just stolen on the beach
|Partner’s Relic Fragment was just stolen on the beach
|D01P11B  
|'''D01P11B'''
'''(m01a0208.ssb)'''
<code>m01a0208.ssb</code>
|
|
|
|-
|<code>$SCENARIO_MAIN = '''scn[2, 3];'''</code>
|Ch. 1
|Pre-fight in Beach Cave
|'''D01P41A'''
<code>m01a0401.ssb</code>
|
|
|
|-
|<code>$SCENARIO_MAIN = '''scn[3, 0];'''</code>
|
|Visual of the Rainbow Stoneship along with ''“The Pokémon Company and CHUNSOFT presents”'' before the game title appears
|'''S11P02C'''
<code>t01p0801.ssb</code>
|
|'''S02P01A''' (debug)
<code>m00a01a.ssb</code>
 
''~ line 2150''
|'''Main 1'''
|-
|<code>$SCENARIO_MAIN = '''scn[3, 1];'''</code>
!'''Chapter 2'''
|About to enter Wigglytuff’s Guild for the first time with the partner
|'''G01P01B'''
<code>m02a0101.ssb</code>
|This value appears in the script mentioned by the previous cell, EVENT_DIVIDE, the debug script, and also in a switch case in EVENT_DIVIDE_FIRST (exact locations can be found in the next cell)
Same note from '''''happylappy''''' as [2, 1] where ''“Basically, if it’s [X, 0], make it [X, 1]… for these chapters only”''
|'''S02P01A''' (debug)
<code>m00a01a.ssb</code>
 
''~ line 1599''
 
&
 
''~ line 393''
----Found in '''unionall.ssb'''
 
<code>EVENT_DIVIDE</code>
 
''~ line 750''
----Found in '''unionall.ssb'''
 
<code>EVENT_DIVIDE_FIRST</code>
 
''~ line 983''
|(under “Others”)
'''<code>M2 The First Job</code>'''
----(under “Dialogue Check”)
 
'''<code>TALK-M02-01</code>'''
|-
|
|
|
|
|
|
|
|-
|
|
|
|
|
|
|
|

Revision as of 18:51, 26 July 2025

The following table is a work-in-progress list of the scenario main ($SCENARIO_MAIN) values used by the vanilla game. These values help the game know where you are in the story and what events have or have not been triggered. They are also used to determine things that change based on story progression, such as which NPCs spawn in Treasure Town or the dialogue said by the partner if you turn to talk to them in the overworld.

The format used by the game for defining this variable is $SCENARIO_MAIN = scn[1, 0]; where the two numbers in the brackets change depending on story progression.

For scripts that check for specific $SCENARIO_MAIN values using if-statements (such as to determine what dialogue should be played at that point in the story), you will usually see the value mentioned in a format like the following, which is taken from one of the partner's overworld dialogue scripts: if ( scn($SCENARIO_MAIN) >= [26, 5] ) . In this example, the game is checking to see if the current $SCENARIO_MAIN value is greater than or equal to [26, 5] and, if that is indeed the case, then the partner's overworld dialogue will be some variation of "We're so close... There's no way we can give up now, [hero]!"

Because some scripts have identical names, the column for the script locations of each $SCENARIO_MAIN value will also include the name of the folder/map they are found in. For example, the $SCENARIO_MAIN value that gets triggered following the Project P cutscene can be triggered by four seprate enter scripts that have identical names (enter01.ssb and enter02.ssb, respectively), so the corresponding map/folder names are also included to help users know which enter scripts to look for.

Scenario Main (Values) Game Chapter Description Script location of the value Other notes Other scripts that mention this value Debug Menu (that uses this value)
$SCENARIO_MAIN = scn[1, 0]; Immediately BEFORE the personality quiz Found in unionall.ssb under

EVENT_DIVIDE_OPENING

~ line 900

Contained within the larger EVENT_DIVIDE
$SCENARIO_MAIN = scn[2, 0]; Immediately AFTER the personality quiz Found in unionall.ssb under

EVENT_M00A_01

~ line 2261

$SCENARIO_MAIN = scn[2, 1]; Found in unionall.ssb under

EVENT_DIVIDE_FIRST

~ line 967

happylappy writes that this is in a switch case in EVENT_DIVIDE over $SCENARIO_MAIN

“Basically, if it’s [X, 0], make it [X, 1]… for these chapters only”

(also applies to scn[3, 1];)

$SCENARIO_MAIN = scn[2, 2]; Chapter 1 Partner’s Relic Fragment was just stolen on the beach D01P11B

m01a0208.ssb

$SCENARIO_MAIN = scn[2, 3]; Ch. 1 Pre-fight in Beach Cave D01P41A

m01a0401.ssb

$SCENARIO_MAIN = scn[3, 0]; Visual of the Rainbow Stoneship along with “The Pokémon Company and CHUNSOFT presents” before the game title appears S11P02C

t01p0801.ssb

S02P01A (debug)

m00a01a.ssb

~ line 2150

Main 1
$SCENARIO_MAIN = scn[3, 1]; Chapter 2 About to enter Wigglytuff’s Guild for the first time with the partner G01P01B

m02a0101.ssb

This value appears in the script mentioned by the previous cell, EVENT_DIVIDE, the debug script, and also in a switch case in EVENT_DIVIDE_FIRST (exact locations can be found in the next cell)

Same note from happylappy as [2, 1] where “Basically, if it’s [X, 0], make it [X, 1]… for these chapters only”

S02P01A (debug)

m00a01a.ssb

~ line 1599

&

~ line 393


Found in unionall.ssb

EVENT_DIVIDE

~ line 750


Found in unionall.ssb

EVENT_DIVIDE_FIRST

~ line 983

(under “Others”)

M2 The First Job


(under “Dialogue Check”)

TALK-M02-01