Frequently Asked Questions: Difference between revisions
m Add link to SkyTemple's repo on the anti-virus question |
Restructure new moves question to make it clearer |
||
| (12 intermediate revisions by the same user not shown) | |||
| Line 31: | Line 31: | ||
[[FAQ#Scripting|Scripting]] (cutscene and dialogue editing) is more challenging, but it has its own tutorial video. | [[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 | There’s also some community-made tutorials available [[:Category:Tutorials|on this wiki]] and on our Discord server, and more will be hopefully added in the future. | ||
=== How can I find out which SkyTemple version I have? === | === How can I find out which SkyTemple version I have? === | ||
| Line 82: | Line 82: | ||
=== How do I get [insert role here]? === | === How do I get [insert role here]? === | ||
You can get some roles by going to the “Channels and Roles” section of the server and answering the customization questions. You can find an explanation about how the most common roles in the server work in the # | You can get some roles by going to the “Channels and Roles” section of the server and answering the customization questions. You can find an explanation about how the most common roles in the server work in the #roles channel (available under Server Guide). If you want to know how to get a role that isn’t listed there, ask the mods. | ||
=== How can I contact the server staff? === | === How can I contact the server staff? === | ||
You can send a private message to @Magnezone, the modmail bot. A staff member will read it and will reply as soon as they can. Remember to be patient, don’t submit your question multiple times and don’t ping the mods if you don’t get an immediate response. | You can send a private message to @Magnezone, the modmail bot. A staff member will read it and will reply as soon as they can. Remember to be patient, don’t submit your question multiple times and don’t ping the mods if you don’t get an immediate response. | ||
=== I've been banned from the server, how can I contact the mods to request an appeal? === | |||
You can appeal strikes and bans by visiting https://appeal.gg/skytemple. | |||
== ROM hacking == | == ROM hacking == | ||
| Line 115: | Line 118: | ||
=== Can new moves be added? === | === Can new moves be added? === | ||
The move list cannot be expanded at the moment, but | The move list cannot be expanded at the moment, but there's some unused move slots that can be replaced without any side effects. They are the following: | ||
* 404: attack animation with no sound effect (safe to edit) | * 404: attack animation with no sound effect (safe to edit) | ||
* 411: attack animation with no sound effect (safe to edit) | * 411: attack animation with no sound effect (safe to edit) | ||
| Line 129: | Line 130: | ||
* 419: walking animation with no sound effect (safe to edit) | * 419: walking animation with no sound effect (safe to edit) | ||
* 420: walking animation with no sound effect (safe to edit) | * 420: walking animation with no sound effect (safe to edit) | ||
* 557: generic move sound effect (likely safe to edit, not confirmed) | |||
* 558: generic move sound effect (likely safe to edit, not confirmed) | |||
There's also a set of moves used for special purposes, which you can replace if you're certain their effect will never be called in your hack (for example, if you remove the Secret Bazaar, you can replace moves 421-423). These moves are the following: | |||
* 361: Excavate | |||
* 362: Spin Slash | |||
* 421: Secret Bazaar Escape | * 421: Secret Bazaar Escape | ||
* 422: Secret Bazaar Cleanse | * 422: Secret Bazaar Cleanse | ||
| Line 138: | Line 146: | ||
* 428: All-Hit Orb | * 428: All-Hit Orb | ||
* 429: Foe-Seal Orb | * 429: Foe-Seal Orb | ||
* 543: Weather Ball Sun | * 543: Weather Ball Sun | ||
* 544: Weather Ball Hail | * 544: Weather Ball Hail | ||
| Line 153: | Line 160: | ||
* 555: Skull Bash second half | * 555: Skull Bash second half | ||
* 556: Ghost-type Curse animation | * 556: Ghost-type Curse animation | ||
If you need even more slots, you can also replace existing regular moves with entirely new ones. If you choose to do so, keep in mind that some moves have hardcoded checks that will cause problems if you replace them, so you should probably shouldn't touch those. Here's the list of moves with known hardcoded behavior: | |||
* 031: Weather Ball (has a special type check in <code>GetMoveTypeForMonster</code>) | * 031: Weather Ball (has a special type check in <code>GetMoveTypeForMonster</code>) | ||
| Line 164: | Line 169: | ||
* 439: Healing Wish (has a hardcoded effect to set the user to 1 HP after using the move) | * 439: Healing Wish (has a hardcoded effect to set the user to 1 HP after using the move) | ||
* 465: Me First (has a special check to use another move after, has move effect #325 by default) | * 465: Me First (has a special check to use another move after, has move effect #325 by default) | ||
* 467: Judgment (copies the user's first type) | |||
* 471: Natural Gift (has a special check in <code>GetMoveTypeForMonster</code>) | * 471: Natural Gift (has a special check in <code>GetMoveTypeForMonster</code>) | ||
* 526: Lunar Dance (has a hardcoded effect to set the user to 1 HP after using the move) | * 526: Lunar Dance (has a hardcoded effect to set the user to 1 HP after using the move) | ||
| Line 188: | Line 194: | ||
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. Also, entries #31 and #84 are both Primal Dialgas with the same stats (The first one is use at the end of the main story, the second one is used at the end of special episode 5). This means you can change the entry used in fixed room #36 (SE5 final boss) to #31 to repurpose entry #84. | ||
HP is capped at 999, other stats cap at 255. | HP is capped at 999, other stats cap at 255. | ||
| Line 209: | Line 215: | ||
=== How do I edit the personality quiz? === | === How do I edit the personality quiz? === | ||
The vanilla quiz is not part of the script engine, it's 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 can be modified in “Lists” → “[[Starter List|Starters]]”. | |||
However, it's possible to reimplement the quiz as a script using [[QuizMenuTool Tutorial|QuizMenuTool]], which provides much more flexibility. | |||
=== 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? === | ||
| Line 226: | Line 234: | ||
These lines must be placed within <code>def 0 {</code>. | These lines must be placed within <code>def 0 {</code>. | ||
'''Note''': Evolving your starters | '''Note''': Evolving any pokémon currently in your active team will disband it, which will cause your starters to be removed from the active team. You can only add them back if [[Performance Progress Flags|performance progress flags 7 and 20]] are enabled. You can add two more lines similar to the one used above to enable flag 10 to enable these two as well, although bear in mind that enabling these two flags has other side effects (check the page linked earlier for details). | ||
=== Is there a way to mass edit data? === | |||
SkyTemple does not support mass editing data (e.g. changing data for multiple dungeon floors at once, or for multiple pokémon, etc.). However, you can make use of the "Import" and "Export" buttons available on most screens to copy the data from one entry to another. | |||
For example, you could adjust the settings of a single dungeon floor and then export it to all other floors in the dungeon. Keep in mind that vanilla dungeons often have minor variations between floors, and doing this will make all floors exactly the same. If you want to introduce variations after that, you'll have to manually edit each floor. | |||
Alternatively, if the change you want to make is more complex than that, you could try writing custom code using [[ROM editing with Python and skytemple-files|Python and the skytemple-files library]]. | |||
=== How can I publish my hack so other people can play it? === | === How can I publish my hack so other people can play it? === | ||
| Line 263: | Line 278: | ||
screen2_FadeIn(0, 30); | screen2_FadeIn(0, 30); | ||
screen_FadeInAll(1, 30); | screen_FadeInAll(1, 30); | ||
</syntaxhighlight>Then go back up until you see <code>forever {</code>, which should be on line 36. Select everything from that line to the line <code>switch ( message_Menu(MENU_PERSONALITY_TEST_END) ) { }</code>, | </syntaxhighlight>Then go back up until you see <code>forever {</code>, which should be on line 36. Select everything from that line (including the line itself) to the line <code>switch ( message_Menu(MENU_PERSONALITY_TEST_END) ) { }</code> (also included, should be line 319) and delete it. Then paste the code you copied from case 28 where you deleted that chunk of code. You can optionally fix the indentation by pressing shift+tab a few times. Save the script and start a new game, the quiz will be automatically skipped and you will have the default player and partner as your team. | ||
=== What language are scripts written in? === | === What language are scripts written in? === | ||
| Line 273: | Line 288: | ||
ROM hacks are distributed as patches, usually in .xdelta format. To play them, you need your own unmodified copy of Explorers of Sky and a program to apply patches, such as [https://www.romhacking.net/utilities/598/ XDelta]. The version of your ROM must match the version used to create the patch. ROM hacks usually specify which version they require. | ROM hacks are distributed as patches, usually in .xdelta format. To play them, you need your own unmodified copy of Explorers of Sky and a program to apply patches, such as [https://www.romhacking.net/utilities/598/ XDelta]. The version of your ROM must match the version used to create the patch. ROM hacks usually specify which version they require. | ||
See section "[[ | See section "[[Frequently Asked Questions#Problems ROM patching|ROM Patching]]" under "Common problems and solutions" for some common issues that you might experience while trying to apply a patch. | ||
You can find a video that explains the process of applying a patch [https://www.youtube.com/watch?v=NaM2yudzFS4 here]. | You can find a video that explains the process of applying a patch [https://www.youtube.com/watch?v=NaM2yudzFS4 here]. | ||
| Line 354: | Line 369: | ||
=== StatsUtil === | === StatsUtil === | ||
StatsUtil is a tool created by PsyCommando | StatsUtil is a tool created by PsyCommando as part of [https://github.com/PsyCommando/ppmdu_2 his ppmdu suite]. It can be used to export some of the game’s binary files and scripts to XML files and then import them back into the game after making changes. SkyTemple can now do almost everything that StatsUtil can, so there’s no need to use it unless SkyTemple isn’t working for you, you want to manually edit some data without an UI, or you want to mass import and export scripts. | ||
Unlike SkyTemple, StatsUtil is a command line tool, it doesn’t have an interface and must be run using the terminal or batch files to execute commands. | Unlike SkyTemple, StatsUtil is a command line tool, it doesn’t have an interface and must be run using the terminal or batch files to execute commands. Under Windows, the easiest way to use it is to download [https://projectpokemon.org/home/applications/core/interface/file/attachment.php?id=45770 Psy’s modding setup folder], which contains StatsUtil + Ndstool (needed to unpack the rom so StatsUtil can read and write the files) + Some .bat files you can use to run StatsUtil without having to type commands yourself. | ||
After you download the folder, copy your rom into it and rename it to “rom.nds”. Then run “1b_ExtractRomNamed_rom.nds.bat”. Wait for the terminal to close, after it does you should have a new folder named “rom” containing some subfolders. Now run “2a_DecompileEverything.bat”. Once it finishes you should have a new folder called “romstats”. That folder contains the XML files you can edit to make changes to the game. | After you download the folder, copy your rom into it and rename it to “rom.nds”. Then run “1b_ExtractRomNamed_rom.nds.bat”. Wait for the terminal to close, after it does you should have a new folder named “rom” containing some subfolders. Now run “2a_DecompileEverything.bat”. Once it finishes you should have a new folder called “romstats”. That folder contains the XML files you can edit to make changes to the game. | ||
Once you are done with the changes, apply them to the rom by running “3a_CompileEverythingAndMakeRom.bat”. Once the process finishes your rom will be patched (check the modification date, it should have changed). After this you can copy the rom back to its original location and test your changes. | Once you are done with the changes, apply them to the rom by running “3a_CompileEverythingAndMakeRom.bat”. Once the process finishes your rom will be patched (check the modification date, it should have changed). After this you can copy the rom back to its original location and test your changes. | ||
If your operating system is not Windows, you will have to build the tool from source following the instructions in the repository. Once you do so, you'll need some other tool to unpack and repack the ROM, since StatsUtil can only work with the ROM data after it's unpacked. | |||