Frequently Asked Questions: Difference between revisions

m Added a section about the randomizer error that shows up if you're missing the Windows redistributable files.
Capypara (talk | contribs)
Wording & Links to other pages
Line 6: Line 6:


=== Where can I find the latest version of SkyTemple? ===
=== Where can I find the latest version of SkyTemple? ===
You can download the latest stable release of SkyTemple in its [https://download.skytemple.org/skytemple/latest/ download page].
You can download the latest stable release of [[SkyTemple]] in its [https://download.skytemple.org/skytemple/latest/ download page].


=== Does SkyTemple support 32 bit systems? ===
=== Does SkyTemple support 32 bit systems? ===
Line 23: Line 23:
Right now we don’t have a general tutorial. You can read the [[FAQ#ROM hacking|ROM hacking]] section of this page to get an idea of what can be done right now. Most of SkyTemple’s features are easy to understand, so the best way to learn is by trying it out.
Right now we don’t have a general tutorial. You can read the [[FAQ#ROM hacking|ROM hacking]] section of this page to get an idea of what can be done right now. Most of SkyTemple’s features are easy to understand, so the best way to learn is by trying it out.


Scripting (cutscene and dialogue editing) is more challenging, but it has its own tutorial video. See the [[FAQ#Scripting|scripting]] section for more information.
[[FAQ#Scripting|Scripting]] (cutscene and dialogue editing) is more challenging, but it has its own tutorial video.


There’s also some community-made tutorials available on our Discord server, and more will be hopefully added to this wiki in the future.
There’s also some community-made tutorials available on our Discord server, and more will be hopefully added to this wiki in the future.
Line 35: Line 35:
== SkyTemple Randomizer ==
== SkyTemple Randomizer ==


=== After playing for a while, I decided I want to change some of the settings. Can I use the randomizer to make that change without affecting anything else? ===
=== After playing for a while, I decided I want to change some of the settings. Can I use the [[SkyTemple Randomizer|Randomizer]] to make that change without affecting anything else? ===
No. If you saved the settings and seed used for randomization, you could load them into the randomizer, change whatever settings you want, and then randomize a new ROM with them. Although even if you do that, you'll likely get a completely different result.
No. If you saved the settings and seed used for randomization, you could load them into the Randomizer, change whatever settings you want, and then randomize a new ROM with them. Although even if you do that, you'll likely get a completely different result.


You should be able to reuse your previous save file, however.
You should be able to reuse your previous save file, however.


=== Can I randomize a ROM hack? ===
=== Can I randomize a ROM hack? ===
Maybe. If the hack has made important internal changes to the game, the ranomizer might not be able to randomize it. If you get errors, try disabling some of the options.
Maybe. If the hack has made important internal changes to the game, the Randomizer might not be able to randomize it. If you get errors, try disabling some of the options.


== SkyTemple Discord server ==
== SkyTemple Discord server ==
Line 61: Line 61:
== ROM hacking ==
== ROM hacking ==


=== How do I add new Pokemon? ===
=== How do I add new [[Editing Pokémon|Pokémon]]? ===
The easiest thing you can do is replace some of the unused slots with the new pokémon you want to add. These are the slots that can be replaced:
The easiest thing you can do is replace some of the unused slots with the new Pokémon you want to add. These are the slots that can be replaced:


==== Unused Arceus forms ====
==== Unused Arceus forms ====
These slots are labeled “??????????”, and can be found in entries #537-551. They aren’t used anywhere so feel free to replace them with other pokémon you want to add to the game.
These slots are labeled “??????????”, and can be found in entries #537-551. They aren’t used anywhere so feel free to replace them with other Pokémon you want to add to the game.


==== Unnecessary Unown forms ====
==== Unnecessary Unown forms ====
Only certain Unown letters are needed to complete Aegis Cave (specifically, letters I, C, E, R, O, K, S, T and L). If you need extra slots you can replace the rest of Unowns with something else. If you do it, make sure to remove them from Aegis Cave’s pokémon spawn lists.
Only certain Unown letters are needed to complete Aegis Cave (specifically, letters I, C, E, R, O, K, S, T and L). If you need extra slots you can replace the rest of Unowns with something else. If you do it, make sure to remove them from Aegis Cave’s Pokémon spawn lists.


==== Unused actors ====
==== Unused actors ====
These entries can be found at the bottom of the list, and are labeled “reserve_xx”. These entries can’t be used inside dungeons since they don’t have stats, so you can’t edit them to add new pokémon, however they can be used as actors (NPCs) in cutscenes.
These entries can be found at the bottom of the list, and are labeled “reserve_xx”. These entries can’t be used inside dungeons since they don’t have stats, so you can’t edit them to add new Pokémon, however they can be used as actors (NPCs) in [[Script Scenes|cutscenes]].


SkyTemple also includes the experimental ExpandPokeList ASM patch, which can be used to expand the available slots. Keep in mind that we still don't know if the patch can cause issues when applied, so it's advised to only apply it after you run out of unused slots. If you do so, make a backup beforehand.
SkyTemple also includes the experimental [[ExpandPokeList]] [[ASM Patches|ASM patch]], which can be used to expand the available slots. Keep in mind that we still don't know if the patch can cause issues when applied, so it's advised to only apply it after you run out of unused slots. If you do so, make a backup beforehand.


=== How do I add new dungeons? ===
=== How do I add new [[Dungeon Properties|dungeons]]? ===
Adding new dungeons is impossible with current hacking knowledge. There is a set of unused Dummy dungeons at the bottom of the dungeon list that can be repurposed.
Adding new dungeons is impossible with current hacking knowledge. There is a set of unused Dummy dungeons at the bottom of the dungeon list that can be repurposed.


=== How can I edit items? ===
=== How can I edit [[Item Data|items]]? ===
SkyTemple allows you to edit basic item data (like the buy and sell price, category, sprite ID…) as well as item effects (the latter requires an ASM patch to be applied). You can use the “Items” menu for this.
SkyTemple allows you to edit basic item data (like the buy and sell price, category, sprite ID…) as well as item effects (the latter requires an ASM patch to be applied). You can use the “Items” menu for this.


If you want to edit the effect of exclusive items you will need to do some hex editing.
If you want to edit the effect of exclusive items you will need to do some hex editing.


=== How can I edit moves? ===
=== How can I edit [[Move Data|moves]]? ===
SkyTemple allows you to edit basic move data (like power, accuracy, type...) as well as move effects (HP heal, stat changes, chance to inflict status effects…) (the latter requires an ASM patch to be applied). You can use the “Moves” menu for this.
SkyTemple allows you to edit basic move data (like power, accuracy, type...) as well as move effects (HP heal, stat changes, chance to inflict status effects…) (the latter requires an ASM patch to be applied). You can use the “Moves” menu for this.


Line 129: Line 129:


=== How can I edit the way an item / move effect works? ===
=== How can I edit the way an item / move effect works? ===
In order to do this you will have to write ASM code (you can also use the [https://asmeditor.skytemple.org/ EoS code editor] by Techticks if you prefer a GUI, although you should keep in mind that it’s a bit outdated and it’s missing many of the functions that have already been documented) and then import the .asm file as a move / item effect in SkyTemple with the “Import code” option found in the “Move effects” / “Item effects” menu.
In order to do this you will have to write ASM code (you can also use the [https://asmeditor.skytemple.org/ EoS code editor] by Techticks if you prefer a GUI, although you should keep in mind that it’s a bit outdated and it’s missing many of the functions that have already been documented) and then import the .asm file as a move / item effect in SkyTemple with the “Import code” option found in the “[[Move Effect|Move effects]]” / “[[Item Effect|Item effects]]” menu.


=== Can abilities be edited? Can new abilities be added? ===
=== Can abilities be edited? Can new abilities be added? ===
Line 135: Line 135:


=== Can the Fairy type be added? And what about adding even more types? ===
=== Can the Fairy type be added? And what about adding even more types? ===
SkyTemple includes the AddTypes patch that can be applied to add the fairy type to the game. Adding more types would be more complicated, since there’s only one unused type string (neutral), which is replaced by fairy when applying the AddTypes patch.
SkyTemple includes the [[AddTypes]] patch that can be applied to add the fairy type to the game. Adding more types would be more complicated, since there’s only one unused type string (neutral), which is replaced by fairy when applying the AddTypes patch.


Even after applying the patch, you’ll still have to manually assign that type to pokémon and moves, as well as implementing new moves yourself.
Even after applying the patch, you’ll still have to manually assign that type to Pokémon and moves, as well as implementing new moves yourself.


=== How can I edit boss battles? ===
=== How can I edit boss battles? ===
Boss battles take place in fixed rooms (aka fixed floors), which you can edit in the “fixed rooms” section. There are some things you should know about them:
Boss battles take place in [[Fixed Room|fixed rooms]] (aka fixed floors), which you can edit in the “fixed rooms” section. There are some things you should know about them:


You can’t add new fixed rooms, but you can replace some unused ones like #155 - 159. Fixed rooms starting after #164 are used for key doors and will be placed inside rooms in normal floors instead of taking the entire floor, so they can’t be used as boss fight rooms.
You can’t add new fixed rooms, but you can replace some unused ones like #155 - 159. Fixed rooms starting after #164 are used for key doors and will be placed inside rooms in normal floors instead of taking the entire floor, so they can’t be used as boss fight rooms.


The list of entities, pokémon, items... that can be placed in fixed rooms (which you can edit by double clicking the “fixed rooms” option) can’t be expanded, so you will need to replace some entries there if you want to add new bosses. The pokémon list has some unused Groudon entries starting at #101 that you can replace.
The list of entities, Pokémon, items... that can be placed in fixed rooms (which you can edit by double clicking the “fixed rooms” option) can’t be expanded, so you will need to replace some entries there if you want to add new bosses. The Pokémon list has some unused Groudon entries starting at #101 that you can replace.


HP is capped at 999, other stats cap at 255.
HP is capped at 999, other stats cap at 255.


=== When editing the music that plays on a dungeon floor, How do I know which songs are included in each of the random entries? Can these be edited? ===
=== When editing the music that plays on a dungeon floor, How do I know which songs are included in each of the random entries? Can these be edited? ===
You can use the "Go to" button under the music list (or manually navigate to "Lists > Dungeon music") to see and edit which 4 songs are included in each random entry (under the "Random music" tab).
You can use the "Go to" button under the music list (or manually navigate to "Lists > [[Dungeon Music List|Dungeon music]]") to see and edit which 4 songs are included in each random entry (under the "Random music" tab).


=== How can I change the pokémon that are added to your team during certain dungeons (like Bidoof during Craggy Coast)? ===
=== How can I change the Pokémon that are added to your team during certain dungeons (like Bidoof during Craggy Coast)? ===
To change the data of these pokémon, as well as which dungeons add them to your team, you can use the "Lists > Guest Pokémon" menu, available after applying the EditExtraPokemon patch.
To change the data of these Pokémon, as well as which dungeons add them to your team, you can use the "Lists > [[Guest Pokémon List|Guest Pokémon]]" menu, available after applying the [[EditExtraPokemon]] patch.


=== How do I test later dungeons in the game? Can I jump ahead in the story? ===
=== How do I test later dungeons in the game? Can I jump ahead in the story? ===
Line 169: Line 169:


=== How do I edit the personality quiz? ===
=== How do I edit the personality quiz? ===
Unfortunately, this is not inside the script engine and is hardcoded. You can individually change each question and answer in text strings, but not the test logic or weights assigned to each answer, or any other parts of it such as the background or BGM. Starter choices, however, can be modified in “Lists” → “Starters”.
Unfortunately, this is not inside the script engine and is hardcoded. You can individually change each question and answer in text strings, but not the test logic or weights assigned to each answer, or any other parts of it such as the background or BGM. Starter choices, however, can be modified in “Lists” → “[[Starter List|Starters]]”.


=== Is it possible to add a selection menu to choose the species of the protagonist after the personality test? ===
=== Is it possible to add a selection menu to choose the species of the protagonist after the personality test? ===
Yes, you can apply the ChooseStarter patch to do this. If you also want to remove the personality test you can also apply the SkipQuiz patch.
Yes, you can apply the [[ChooseStarter]] patch to do this. If you also want to remove the personality test you can also apply the [[SkipQuiz]] patch.
 
If you want to skip the quiz and force a specific player and partner combination, see “[[FAQ#Can I skip the personality test in my hack and just force a certain starting team?|Can I skip the personality test in my hack and just force a certain starting team?]]” in the scripting section.
If you want to skip the quiz and force a specific player and partner combination, see “[[FAQ#Can I skip the personality test in my hack and just force a certain starting team?|Can I skip the personality test in my hack and just force a certain starting team?]]” in the scripting section.


Line 187: Line 188:


=== Can dialogue/scenes be edited? How do I get started with it? ===
=== Can dialogue/scenes be edited? How do I get started with it? ===
This kind of editing is known as [[scripting]], since you will need to modify the game’s scripts. You can find a tutorial [https://www.youtube.com/watch?v=6SfThAf_sos here], and a playlist with multiple tutorials [https://www.youtube.com/playlist?list=PLeoQCzDApD5Kmp0eRA947oPelXunAtqWv here].
This kind of editing is known as [[Script|scripting]], since you will need to modify the game’s scripts. You can find a tutorial [https://www.youtube.com/watch?v=6SfThAf_sos here], and a playlist with multiple tutorials [https://www.youtube.com/playlist?list=PLeoQCzDApD5Kmp0eRA947oPelXunAtqWv here].


=== Is there a way to jump to an exact script instead of the existing debug checkpoints? ===
=== Is there a way to jump to an exact script instead of the existing debug checkpoints? ===
Line 202: Line 203:


==== Skip the personality test ====
==== Skip the personality test ====
Go to script “S02P01A”, then under “Acting (ssa)” open “m00a01a”. Scroll down until you see “case 28” (Should be line 270 if you haven’t made any changes to that file yet). Copy the contents of case 28 except its last line, which should be<syntaxhighlight>
Go to script “S02P01A”, then under “[[Acting Scene|Acting (ssa)]]” open “m00a01a”. Scroll down until you see “case 28” (Should be line 270 if you haven’t made any changes to that file yet). Copy the contents of case 28 except its last line, which should be<syntaxhighlight>
debug_Print('DIAGNOSIS_BLACK2');
debug_Print('DIAGNOSIS_BLACK2');
screen2_FadeOut(0, 0);
screen2_FadeOut(0, 0);
Line 213: Line 214:


=== What language are scripts written in? ===
=== What language are scripts written in? ===
Internally, scripts are stored in a binary format that uses .ssa/.ssb files. SkyTemple decompiles them to a custom language created by Capypara called [[ExplorerScript]] to make it easier to edit them and then compiles them back to the format used by the game. You can find the ExplorerScript language specification [https://explorerscript.readthedocs.io/en/latest/language_spec.html here].
Internally, scripts are stored in a binary format that uses .ssa/.ssb files. SkyTemple decompiles them to a custom language created by Capypara called [[ExplorerScript]] to make it easier to edit them and then compiles them back to the format used by the game. Check the [[ExplorerScript Reference|language reference]] for more information.


== Playing ROM hacks ==
== Playing ROM hacks ==
Line 267: Line 268:


==== I'm getting an error window that contains the text "ARMIPS reported an error while applying the patch" ====
==== I'm getting an error window that contains the text "ARMIPS reported an error while applying the patch" ====
You are missing some Windows files required to appply patches and run the randomizer. Visit [https://www.microsoft.com/en-US/download/details.aspx?id=48145 this link] and download both the x86 and the x64 versions of the C++ Redistributable, then install them, restart the randomizer and try again.
You are missing some Windows files required to appply patches and run the Randomizer. Visit [https://www.microsoft.com/en-US/download/details.aspx?id=48145 this link] and download both the x86 and the x64 versions of the C++ Redistributable, then install them, restart the Randomizer and try again.


==== I tried to randomize my ROM and I'm getting errors or strange side effects, such as all the NPCs being randomized to the same pokémon. What happened? ====
==== I tried to randomize my ROM and I'm getting errors or strange side effects, such as all the NPCs being randomized to the same Pokémon. What happened? ====
This can happen if you try to re-randomize a ROM that was already randomized before. The randomizer cannot work with ROMs that have already been randomized, you need to use an unmodified ROM.
This can happen if you try to re-randomize a ROM that was already randomized before. The Randomizer cannot work with ROMs that have already been randomized, you need to use an unmodified ROM.


=== <span id="Problems ROM patching"></span>ROM patching ===
=== <span id="Problems ROM patching"></span>ROM patching ===