Jump to content

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 86 2A22 0D 28 F9 C9 10 10 10 10
||
21 E6 DD 0E 04 3E C0 86 22 0D 20 F9 C9 10 10 10 10
|-
! scope="row" | French
||
21 31 DB 0E 04 3E C0 86 2A22 0D 28 F9 C9 10 10 10 10
||
21 E6 DD 0E 04 3E C0 86 22 0D 20 F9 C9 10 10 10 10
|-
! scope="row"| German
||
21 31 DB 0E 04 3E C0 86 2A22 0D 28 F9 C9 10 10 10 10
||
21 E6 DD 0E 04 3E C0 86 22 0D 20 F9 C9 10 10 10 10
|-
! scope="row"| Italian
||
21 31 DB 0E 04 3E C0 86 2A22 0D 28 F9 C9 10 10 10 10
||
21 E6 DD 0E 04 3E C0 86 22 0D 20 F9 C9 10 10 10 10
|-
! scope="row"| Spanish
||
21 31 DB 0E 04 3E C0 86 2A22 0D 28 F9 C9 10 10 10 10
||
21 E6 DD 0E 04 3E C0 86 22 0D 20 F9 C9 10 10 10 10
|-
! scope="row"| Japanese
||
21 F7 DA 0E 04 3E C0 86 22 0D 20 F9 C9 10 10 10 10
||
21 AC DD 0E 04 3E C0 86 22 0D 20 F9 C9 10 10 10 10
|-
! scope="row"| Korean
||
21 2E DC 0E 04 3E C0 86 22 0D 20 F9 C9 01 01 01 01
|}
 
===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.
 
Customizability: change the value marked in bold with the value corresponding to the desired level.
Note: This code only works for levels 1 through 100. It will also automatically update the total experience and stats of party pokémon #6 to the appropriate amounts. '''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.'''
 
{| 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.
 
Note: the actual 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.
 
{| 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.
 
Note: the actual 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.
 
{| 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.
 
Note: This code only works for levels 1 through 100. It will also automatically update the total experience and stats of party pokémon #6 to the appropriate amounts. '''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.'''
 
{| 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.
 
Customizability: change the value marked in bold on the first line with the value corresponding to the desired happiness/egg cycles left before hatching.
Note: 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.
 
{| class="wikitable"
Line 612 ⟶ 620:
===Give PokéRus===
 
Note:Using this mail code will give party pokémon #6 the pokérus status. The strain given with this code will last for three days.
 
{| 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:
|}
 
===Set exp to guarantee a specific nature on transfer===
 
This code is intended for use in the VC releases. By modifying the value marked in bold, you can ensure a pokémon will transfer with a specific nature at its current level.
 
The code itself will set the total experience of party pokémon #6 to a value between 0 and 24, depending on the desired nature. Use the following table to check what value is needed for a specific desired nature:
 
{| class="wikitable"
! scope="row"| Hardy
|| 00
! scope="row"| Bold
|| 05
! scope="row"| Timid
|| 0A
! scope="row"| Modest
|| 0F
! scope="row"| Calm
|| 14
|-
! scope="row"| Lonely
|| 01
! scope="row"| Docile
|| 06
! scope="row"| Hasty
|| 0B
! scope="row"| Mild
|| 10
! scope="row"| Gentle
|| 15
|-
! scope="row"| Brave
|| 02
! scope="row"| Relaxed
|| 07
! scope="row"| Serious
|| 0C
! scope="row"| Quiet
|| 11
! scope="row"| Sassy
|| 16
|-
! scope="row"| Adamant
|| 03
! scope="row"| Impish
|| 08
! scope="row"| Jolly
|| 0D
! scope="row"| Bashful
|| 12
! scope="row"| Careful
|| 17
|-
! scope="row"| Naughty
|| 04
! scope="row"| Lax
|| 09
! scope="row"| Naive
|| 0E
! scope="row"| Rash
|| 13
! scope="row"| Quirky
|| 18
|}
 
{| 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 22 DB 3E 00 22 3E 00 22 3E '''18''' 22 C9 10 10 10
||
21 D7 DD 3E 00 22 3E 00 22 3E '''18''' 22 C9 10 10 10
|-
! scope="row" | French
||
21 22 DB 3E 00 22 3E 00 22 3E '''18''' 22 C9 10 10 10
||
21 D7 DD 3E 00 22 3E 00 22 3E '''18''' 22 C9 10 10 10
|-
! scope="row"| German
||
21 22 DB 3E 00 22 3E 00 22 3E '''18''' 22 C9 10 10 10
||
21 D7 DD 3E 00 22 3E 00 22 3E '''18''' 22 C9 10 10 10
|-
! scope="row"| Italian
||
21 22 DB 3E 00 22 3E 00 22 3E '''18''' 22 C9 10 10 10
||
21 D7 DD 3E 00 22 3E 00 22 3E '''18''' 22 C9 10 10 10
|-
! scope="row"| Spanish
||
21 22 DB 3E 00 22 3E 00 22 3E '''18''' 22 C9 10 10 10
||
21 D7 DD 3E 00 22 3E 00 22 3E '''18''' 22 C9 10 10 10
|-
! scope="row"| Japanese
||
21 E2 DA 3E 00 22 3E 00 22 3E '''18''' 22 C9 10 10 10
||
21 9D DD 3E 00 22 3E 00 22 3E '''18''' 22 C9 10 10 10
|-
! scope="row"| Korean
||
21 1F DC 3E 00 22 3E 00 22 3E '''18''' 22 C9 10 10 10
|}
 
==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'''.
 
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'''.
Note: This will cause the game to treat pokémon caught with the previous ID as traded pokémon.
 
{| 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 badgemail code will set badges as either obtained or not obtained, depending on the values used.
 
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===
 
UnlocksThis mail code unlocks all possible fly locations and sets them as visited.
 
{| class="wikitable"
Line 1,454 ⟶ 1,355:
===Set money to max===
 
SetsThis mail code sets the player's money to 999,999.
 
{| class="wikitable"
Line 1,504 ⟶ 1,405:
===Set coins to max===
 
SetsThis mail code sets the player's coins to 9,999.
 
{| 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===
 
Note:This thismail code will automatically stop removing pokémon when there is only one pokémon left in the party. To clear out your entire party, please use the codenext aftermail thiscode oneinstead.
 
{| 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.
 
Customizability: the values marked in bold correspond to the species and level of the pokémon given, respectively.
Note: the script to give the new pokémon will only run after you've exited the start screen.
 
{| 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
|}
 
===Give any pokémon===
 
Customizability: the values marked in bold correspond to the species and level of the pokémon given, respectively.
 
Note: Use this code only when you have space available in the party.
 
{| 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
|}
 
1,540

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.