Guides:Mail Writer Codes: Difference between revisions
no edit summary
No edit summary |
|||
Line 33:
|}
This page is split up in a section with simple codes intended for common uses and a section with complex codes for specific uses. Codes are both language specific and version specific, please make sure you select the appropriate code for your language. Likewise, it is advised not to give yourself additional TMs, as to not break the mail writer.
=Simple codes=
Line 40:
===Change held item===
Changes the held item of party pokémon #6 to the item defined by the mail code. Any item previously held will be overwritten. While any item can theoretically be given, be cautious when changing the held item to a Key Item.
Customizability: The value marked in bold determines the held item given to party pokémon. Use [[The Big HEX List|the Big HEX List]] to search what values correspond with specific items.
Line 90 ⟶ 92:
===Change moves===
Using this mail code will overwrite party pokémon #6's moveset using the values defined by the mail code. This will not overwrite the PP values from the previously existing moveset.
Customizability: The four value marked in bold correspond to the moves that will be given to the pokémon. First value corresponds with first move, and so on. Use [[The Big HEX List|the Big HEX List]] to search what values correspond with specific items.
Line 140 ⟶ 144:
===Maximize PP values for all moves===
Using this mail code will set the maximum PP of every move, as if a PP Up was used on every move three times. As a limitation of the code, the actual PP values are set to 0 after using this code.
Customizability: cannot be customised.
Line 152 ⟶ 158:
! scope="row"| English
||
21 31 DB 0E 04 3E C0
||
21 E6 DD 0E 04 3E C0
|-
! scope="row" | French
||
21 31 DB 0E 04 3E C0
||
21 E6 DD 0E 04 3E C0
|-
! scope="row"| German
||
21 31 DB 0E 04 3E C0
||
21 E6 DD 0E 04 3E C0
|-
! scope="row"| Italian
||
21 31 DB 0E 04 3E C0
||
21 E6 DD 0E 04 3E C0
|-
! scope="row"| Spanish
||
21 31 DB 0E 04 3E C0
||
21 E6 DD 0E 04 3E C0
|-
! scope="row"| Japanese
||
21 F7 DA 0E 04 3E C0
||
21 AC DD 0E 04 3E C0
|-
! scope="row"| Korean
||
21 2E DC 0E 04 3E C0
|}
===Change OT ID===
Using this mail code will alter the original trainer ID of party pokémon #6 to the value defined by the code. Pokémon with OT ID values different from the player will be treated as traded pokémon.
Customizability: The values in bold determine the OT ID that party pokémon #6 will recieve. Simply convert the desired OT ID (between 00000 and 65536) to hexadecimal and replace the values in bold. e.g. OT ID '''12345''' corresponds to '''30 39'''.
Line 243 ⟶ 251:
===Change level===
Using this mailcode sets the level of party pokémon #6 to the value defined by the code. It will also automatically update the total experience and battle stats of party pokémon #6 to the appropriate amounts. This code only works for levels 1 through 100. '''Please note that, due to limitations, the game will appear graphically glitchy when it's updating the level. This is temporary and goes away after the code has finished running.'''
Customizability: change the value marked in bold with the value corresponding to the desired level.
{| class="wikitable"
Line 322 ⟶ 330:
===Change stat experience===
Using this mail code sets the stat experience values of party pokémon #6 to the values defined by the code. The actual battle stats of party pokémon #6 aren't automatically updated after this code. To fix this, deposit to and withdraw the pokémon from the PC.
Customizability: the ten values marked in bold determine the stat experience that party pokémon #6 will be set to. These values are divided in groups of two bytes ordered as follows:
Line 330 ⟶ 340:
# '''FF FF''' - Special (affects both Sp. Atk. and Sp. Def.)
These values are big endian (most significant byte first). Set them to '''FF FF''' to maximize the stat experience given.
{| class="wikitable"
Line 393 ⟶ 401:
===Change DVs===
Using this mail code sets the DVs of party pokémon #6 to the values defined by the code. The actual battle stats of party pokémon #6 aren't automatically updated after this code. To fix this, deposit to and withdraw the pokémon from the PC.
Customizability: the ten values marked in bold determine the DVs that party pokémon #6 will be set to. These values are divided and ordered as follows:
Line 398 ⟶ 408:
# '''AA''' - Speed | Special
Set to '''FF FF''' to maximize DVs, set to '''FA AA''' for a shiny male pokémon, set to '''2A AA''' for a shiny female (if possible) pokémon.
{| class="wikitable"
Line 448 ⟶ 456:
===Change level, stat experience and DVs in one code===
Using this mailcode sets the level, along with stat experience and DVs, of party pokémon #6 to the value defined by the code. It will also automatically update the total experience and battle stats of party pokémon #6 to the appropriate amounts. This code only works for levels 1 through 100. '''Please note that, due to limitations, the game will appear graphically glitchy when it's updating the level. This is temporary and goes away after the code has finished running.'''
Customizability: change the value marked in bold on the first line with the value corresponding to the desired level.
Line 463 ⟶ 473:
# '''AA''' - Speed | Special
Set to '''FF FF''' to maximize DVs, set to '''FA AA''' for a shiny male pokémon, set to '''2A AA''' for a shiny female (if possible) pokémon.
{| class="wikitable"
Line 560 ⟶ 568:
===Change happiness/time to hatch===
Using this mail code sets the happiness value of party pokémon #6 to the value defined by the code. For eggs, this value is instead used to track the amount of egg cycles left before hatching. In order to hatch eggs quickly, make sure to use a value of 01. Due to the way the system is implemented, a value of 00 will instead cause the egg to take an absurdly long time to hatch.
Customizability: change the value marked in bold on the first line with the value corresponding to the desired happiness/egg cycles left before hatching.
{| class="wikitable"
Line 612 ⟶ 620:
===Give PokéRus===
{| class="wikitable"
Line 662 ⟶ 670:
===Change OT name===
This mail code will open a name entry screen. After a name has been entered, party pokémon #6's OT name data is overwritten by the newly entered name.
{| class="wikitable"
Line 725 ⟶ 733:
===Change nickname===
This mail code will open a name entry screen. After a name has been entered, party pokémon #6's nickname data is overwritten by the newly entered name.
{| class="wikitable"
Line 786 ⟶ 794:
|}
==Codes that affect items==
Line 953 ⟶ 854:
===Change item #1's ID and quantity in ball pocket===
This mail code sets the item ID and quantity of the first item in the ball pocket.
Customizability: The values marked in bold determine the item ID and quantity given to party pokémon. Use [[The Big HEX List|the Big HEX List]] to search what values correspond with specific items.
Line 1,009 ⟶ 910:
===Change name===
This mail code will open a name entry screen. After a name has been entered, the player's name is overwritten by the newly entered name.
Note: This will cause the game to treat pokémon caught with the previous name as traded pokémon.
Line 1,137 ⟶ 1,038:
===Change ID===
This mail code sets the player's trainer ID. This will cause the game to treat pokémon caught with the previous, different ID as traded pokémon.
Customizability: The values in bold determine the player's new ID. Simply convert the desired ID (between 00000 and 65536) to hexadecimal and replace the values in bold. e.g. OT ID '''12345''' corresponds to '''30 39'''.
{| class="wikitable"
Line 1,189 ⟶ 1,090:
===Change player gender (Crystal exclusive)===
This mail code switches the player's gender to the opposite gender (male to female and vice versa). This code is persistent and doesn't require manually saving to be kept after a reset.
Note: This code will not change the player's color palette.
Line 1,226 ⟶ 1,127:
===Change player sprite palette===
This mail code changes the colors used for the player's sprites. After a manual save, these colors will be kept between resets.
Customizability: change the value marked in bold for different color palette. There are a total of 8 possible color palettes, use values 00 through 07 for these colors:
Line 1,300 ⟶ 1,201:
===Change player sprite pointer===
This mail code changes the sprites used to display the player. These can be used to give the player the appearance of an NPC character, but the characters used are dependent on the map.
Customizability: the value marked in bold can be changed to point to a different sprite. Use '''00''' to set it back to normal, use a multiple of $0C as value to point to the sprite of a map dependent NPC.
Line 1,352 ⟶ 1,253:
===Set all badges as (not) obtained===
This
Customizability: the values marked in bold represent Johto badges and Kanto badges respectively. Set to '''FF FF''' to set all badges as obtained, set to '''00 00''' to set all badges as not obtained, set to '''FF 00''' to set all Johto badges as obtained and all Kanto badges as not obtained.
Line 1,404 ⟶ 1,305:
===Unlock all fly locations===
{| class="wikitable"
Line 1,454 ⟶ 1,355:
===Set money to max===
{| class="wikitable"
Line 1,504 ⟶ 1,405:
===Set coins to max===
{| class="wikitable"
Line 1,550 ⟶ 1,451:
||
01 02 00 11 2D D6 21 5E DE C3 C2 31 27 0F 00 00
|}
===Give any pokémon===
This mail code gives you any desired pokémon at any desired level. The pokémon will be given after exiting the item screen. Use this code only when you have space available in the party.
Customizability: the values marked in bold correspond to the species and level of the pokémon given, respectively.
{| class="wikitable"
|+ Codes to be used with [https://scotteh.me/ace/mail/ Scotteh's mail code tool]
|-
! Language !! Gold & Silver !! Crystal
|-
! scope="row"| English
||
21 5B DD C3 48 27 47 2D '''85 05''' 00 00 49 90 10 10
||
21 86 D2 C3 1F 26 47 2D '''85 05''' 00 00 49 91 10 10
|-
! scope="row" | French
||
21 5B DD C3 5A 27 47 2D '''85 05''' 00 00 49 90 10 10
||
21 86 D2 C3 00 26 47 2D '''85 05''' 00 00 49 91 10 10
|-
! scope="row"| German
||
21 5B DD C3 75 27 47 2D '''85 05''' 00 00 49 90 10 10
||
21 86 D2 C3 09 26 47 2D '''85 05''' 00 00 49 91 10 10
|-
! scope="row"| Italian
||
21 5B DD C3 6D 27 47 2D '''85 05''' 00 00 49 90 10 10
||
21 86 D2 C3 01 26 47 2D '''85 05''' 00 00 49 91 10 10
|-
! scope="row"| Spanish
||
21 5B DD C3 6C 27 47 2D '''85 05''' 00 00 49 90 10 10
||
21 86 D2 C3 FD 25 47 2D '''85 05''' 00 00 49 91 10 10
|-
! scope="row"| Japanese
||
21 CC DC C3 F5 26 47 2D '''85 05''' 00 00 49 90 00 00
||
21 B7 D2 C3 E2 25 47 2D '''85 05''' 00 00 49 92 10 10
|-
! scope="row"| Korean
||
21 58 DE C3 A5 27 47 2D '''85 05''' 00 00 4A 91 01 01
|}
===Instantly complete pokédex and unowndex===
This mail code will set all 251 pokémon as seen and caught. Along with this, it will set all Unown as caught in alphabetical order and set Unown A as first Unown seen.
{| class="wikitable"
Line 1,616 ⟶ 1,569:
==Cleanup codes==
Cleanup codes are intended to be used to clean up the effects of previous glitches and/or mail codes.
===Fix side effects of duplicate key item swap and set up better ACE (Gold & Silver exclusive)===
This mail code fixes the side effects of duplicate key item swap by removing the last pokémon in the party, along with giving TM33 and setting it up to redirect execution to the mail writer.
After using this code, you can simply use TM33 at any time to start up the mail writer, without requiring any specific party pokémon.
Line 1,671 ⟶ 1,626:
===Set amount of pokémon in current active box to 0===
This mail code will set the amount of pokémon in the current active box to 0. This can be used to solve specific glitches, like the box indicating it contains more pokémon than it seemingly already has.
{| class="wikitable"
Line 1,720 ⟶ 1,677:
===Remove last pokémon from the party===
{| class="wikitable"
Line 1,770 ⟶ 1,727:
===Empty entire party and give a new pokémon===
This mail code empties the current party and gives one desired pokémon, as to not leave the player with an empty party. Use this if you get a white screen when opening the party screen. The script to give the new pokémon will only run after you've exited the start screen.
Customizability: the values marked in bold correspond to the species and level of the pokémon given, respectively.
{| class="wikitable"
Line 1,831 ⟶ 1,788:
21 1F DB AF 77 21 5D DE C3 A5 27 47 2D '''85 05''' 00
00 4A 91 01 01 01 01 01 01 01 01 01 01 01 01 01
|}
|