QuizMenuTool Tutorial
This article is unfinished. You can help expanding it.
This guide explains how to use QuizMenuTool to create a custom Personality Quiz. The bulk of this guide will explain the use of the google sheets portion of the tool. A rudimentary understanding of SkyTemple scripting will be assumed, namely adding new acting scenes, and adding scenes to unionall.ssb. For help with these topics... TODO: Link supplemental resources or suggest #support.
Who QuizMenuTool is for
If either of the below points do not apply to you, you do not need QuizMenuTool.
- You would like to expand (or shrink) the list of starter options in the game.
- You would like to keep the personality quiz in the game.
If you only want to change the size of the starter list, and do not want the personality quiz (as if the SkipQuiz patch is applied), you should instead use StarterMenuTool, which is less powerful but requires much less work to set up.
Programs and Files
Required Programs and Files
- Explorers of Sky Personality Quiz Assembling Sheet
- Necessary Special Processes and SkyPatches
- SkyTemple
General Spreadsheet Tips
Making a Copy of the Sheet
The above link does NOT grant edit access. In order to use the sheet, a copy will need to be made as follows:

First click the "File" button on the top left. Next, "Make a Copy" of the sheet. Finally, name the copy as desired.
Cell Color-Coding
Throughout the spreadsheet, most cells are color-coded. Here's a brief explanation of each color present in the sheet:
- Green Cells are for user input. If a cell is green, it is intended to contain input data.
- Grey Cells contain formulas. They will update automatically, and should not be edited.
- Orange Cells are for user outputs. If a cell is orange, it is intended to be exported elsewhere, such as to a SkyTemple script.
- Cells without a color or of an unspecified color are typically safe to edit. Always check for a formula first though!
Paste Values Only
This tab is the first which will require the use of "Paste Values". When this guide specifies that a copy/paste must "Paste Values", this means that the copied text is a formula, and the pasted text should not be a formula.

There are two ways to paste values, either by right-clicking the paste location and selecting "Paste Special" then "Values Only", or by holding shift as you paste.
Quiz Preamble Generator: A Good First Impression!
The Quiz Preamble Generator Tab as a whole exists to create the very beginning of the quiz.
Upper Panel
Most tabs in the sheet contain an upper panel of some kind, with various simple inputs and feedback on them:

The "Bottom Screen" and "Top Screen" inputs are the map ID that should be used for that screen's background. Similarly, the Background Music Name/ID is a BGM name (or number) of the BGM that should play throughout the quiz. The "White Space?" checkbox will attempt to add indents to the output ExplorerScript lines, making the output script more human-readable.
Preamble Text
This is the first of many direct inputs for ExplorerScript code. Due to the way spreadsheets store cell data, " " behave weirdly when present in the final script. Please use ' ' instead. This input is for the first set of dialogue before the questions actually begin.

Outputs
The orange output cell on this sheet is largely unimportant, but is present for debug purposes. It compiles the portions of the script using the inputs on this tab of the sheet.
Starter Selection Generator: Actually Adding the Starters...
This tab of the sheet is primarily for inputting data about the starters, or the personality pools they belong to.
Upper Panel

This upper panel contains 4 inputs, 3 of which are for Special Processes pertaining to starter selection. If other Special Processes have already been added, these Special Process IDs will need to be changed to free slots. The "White Space?" checkbox is the same as before, except for this tab of the sheet. The 4 grey cells are useful statistics about the input starters: how many different pools are used by the starters, how many species are present, and how many options there are for the hero and partner.
Personality Pool Input
Next, on the lower right is the nature "Pool" input. These contain the pool name, and the text that should be displayed if that pool is selected by the quiz.

The "Pool Name" field is only used by the Question Generator Tab, and will not show up anywhere in the final script. Modify these as desired as soon as possible, as it will be difficult to do so after designing the quiz questions. For best results, ensure all pool names are unique!
Starter Species Data
The bottom left segment of the sheet is the "Starter Species Data" input. This is part of a wider table, but each segment will be discussed individually.

While some of these fields should be intuitive, A brief description of each column is as follows:
- Species Name: The name of the species as you want it shown in the quiz. If the cell turns purple on entering a species name, this means the Pokémon could not be found in Vanilla Translation Strings. French and German Translations will need to be added by hand, or all strings involving the Pokémon will need to be translated manually.
- Species ID: The ID in SkyTemple of the Pokémon. [TODO: Explain how this is affected by ExpandPokeList].
- Gender: The gender of the Pokémon, used to set the frame color, and to add "♂" and "♀" to the hero/partner selection list. 0 is Male, 1 is Female, and 2 is Genderless.
- Pool ID: The number of the Pool the Pokémon should be categorized under. Each Pool that could be chosen by the Quiz should have at least one valid Pokémon, or Bulbasaur will be selected as a failsafe. If the species are not sorted by Pool ID, cells will turn red. The sheet will produce invalid labels if this table is not sorted by Pool ID!
- Start w/ Vowel: If the Pokémon should be referred to as "...an [Pokémon]", check this box.
Talk Group & Role Exclusion
Continuing along the table, the next two subsections are for "Talk Groups" and "Role Exclusion". Both of these segments relate to either the hero, or the partner.

In the vanilla game, the hero and partner have differing dialogue depending on their species-specific "Talk Group". These columns are dedicated to assigning the talk group for the hero or partner if that row's species is chosen. While it handles pronouns for dialogue, especially in gendered languages, it also affects the way the partner's dialogue is written. It does the same for the hero's dialogue, but in the English localization it only affects 2 lines in the entire game ("Whoa" <-> "Wah", "All right" <-> "OK"). This is how they are used in vanilla:
| # | Used By | Notable Species | Description |
|---|---|---|---|
| 1 | Partner | Male Squirtle/Totodile/Chimchar/Meowth/Munchlax | More Masculine/"Rural" Dialogue. (Refers to self as "Oira" in Japanese) |
| 2 | Partner | All other Male Pokémon | More Masculine/"Boyish" Dialogue. (Refers to self as "Boku" in Japanese) |
| 3 | Partner | All Female Pokémon | More Feminine Dialogue. (Refers to self as "Watashi" in Japanese) |
| 4 | Hero | All Male/Genderless Pokémon | Uses Masculine Pronouns |
| 5 | Hero | All Female Pokémon | Uses Feminine Pronouns |
The "Role Exclusion" checkboxes blacklist the row from being an option as a hero or as a partner respectively. Certain Pokémon, particularly Meowth and Munchlax, are unable to be heroes in the vanilla game. This section is how to replicate that feature of the original quiz.
Fuwarante Blacklist
Finally, on the far end of the table, is the Fuwarante Blacklist inputs. These are perhaps the most complicated portion of this tab of the sheet.

Each column corresponds to a bit of the script variable $BIT_FUWARANTE_LOCAL. If the matching flag is on, the starter in that row cannot be chosen. This will be elaborated on further in the "Question Loop Generator", but this is a brief explanation of what the bits represent by default:
| Bit | Description/Use Case |
|---|---|
| 0 | If enabled, $PLAY_OLD_GAME will be true, meaning the player answered that they have played Time/Darkness before. |
| 1 | If enabled, the player has played EoS before, according to a custom starting question. |
| 2 | If enabled, the player has participated in a Mystery Mail event before, according toa custom ending question. |
| 3 | If enabled, the player claimed to be female in the final gender question. Enable for male starters. |
| 4 | If enabled, the player claimed to be male in the final gender question. Enable for female starters. |
Outputs
Once again, the orange output cells on the far right of this sheet are largely unimportant, but are present for debug purposes. It compiles the portions of the script using the inputs on this tab of the sheet.
Question Loop Generator: Before, After, and For How Long?
Upper Panel
The upper panel of this sheet mostly consists of inputs, though the single output is a reminder of how many unique pools are used by the Starter Selection Generator. The input directly left of it is for telling the Question Loop Generator how many pools are in use, and should be changed to match the display. On the upper left of the panel, there are inputs for how many questions the game should ask the player, and how many questions will be written for the quiz to randomly choose from. In vanilla, there are 64 possible questions, and 8 will be given to the player.

The bottom row consists of checkboxes to enable/disable the Custom/Standard First and Last Questions, such as the Gender Question and the Time/Darkness Question, which boosts recruit rates for certain species if you answer yes, and adds points to certain pools containing sky-exclusive Pokémon.
ExplorerScript Pre/Post Quiz Questions
Room for an additional question before and after the quiz has also been made, which along with the Gender and Time/Darkness questions can be modified in the below ExplorerScript inputs:

These are the primary use-cases for the Fuwarante Blacklist described above.
Question Generator: Multiple Choice Monotony
About Question Templates
This tab of the sheet is dedicated to the design and storage of the individual random questions in the quiz. The way this sheet works revolves around "Question Templates" that store the question text, question number, answer text, pool ID, and points for that pool ID. Below is an example of a Question Template, and how it translates to question data:
| Question Text | Question # | |||||||
|---|---|---|---|---|---|---|---|---|
| Do you prefer to be busy or to have a lot of free time? | 35 | |||||||
| Answer Text | Pool 1 ID and Pts | Pool 1 ID and Pts | Pool 1 ID and Pts | Pool 1 ID and Pts | ||||
| Being busy. | 11 | 4 | 8 | 2 | - | - | - | - |
| Free time! | 9 | 4 | - | - | - | - | - | - |
| In between. | 12 | 4 | - | - | - | - | - | - |
Question Template Input
On the far left, is an input for an existing Question Template.

The "Use Question Template Input" checkbox tells the sheet whether or not to use the Question Template provided. When writing questions entirely from scratch, disable this checkbox. When modifying existing questions, enable the checkbox, and paste in the Question Template. This will subsequently auto-fill the Question Data Inputs with the data within the template. If the auto-filled data itself needs to be altered, you will need to copy and paste values the data, then disable the checkbox.
Question Data Inputs

The Question Data Inputs Area should seem relatively intuitive. The question text is at the top, the answers are beneath, and up to 4 Personality Pools can gain points from each answer choice. The White Space checkbox is identical to the previous tab, and the question index is just the internal "ID" of the question. It should be incremented for each new question created, and will translate to the ID of the switch case in the final code. Note that the drop-down for the Pool Names is sourced from the Pool Names column of the Starter Selection Generator, and any changes to that list after creating the questions may lead to problems. With the current setup of the sheet, each question is limited to a maximum of 26 answer choices, but this limit is arbitrary, and can be circumvented by editing the question template manually, and pasting it in the Template List. In the event that a single question requires more than 26 choices, please ping happylappy in a support thread.
Question Template Output & Template List
Finally, once the question is complete, a template for the question will be created in "Question Template Output".

Before moving onto the next question, copy the template output, and Paste Values in the corresponding slot on the "Question Template List". By default, templates for each vanilla question are already in the Question Template List, ready to be edited or modified by copying and pasting into the Question Template Input. The Script Output Column is again for debug purposes, and is read automatically by another tab of the sheet.
Personality Pool Selection Generator: Tallying Up the Points
Once the quiz itself is completed, the points need to be tallied, so that a winning pool can be selected. The exact way that this happens in vanilla is a tad complicated, especially when it comes to breaking ties. Here are the steps that occur in vanilla:
- Points are added to pools containing Sky-Exclusive Starters if the player has played Time/Darkness.
- If Male is chosen for the gender question, +4 Points are added to Relaxed, Hasty, and Sassy. (Phanpy, Shinx, and Riolu)
- If Female is chosen for the gender question, +4 Points are added to Relaxed and Jolly. (Vulpix and Eevee)
- The highest pool is found, and chosen.
- If there is a tie, it is broken by adding a random number (0-19) to each, and rescoring the points.
- If there is STILL a tie, it chooses the smallest pool it can.
