This page serves as a repository for a list of modular TM codes for use in Gold/Silver. These consists of two segments:
Write a small program using the quantities of TM01 through TM18 that either runs a modular code or, when holding select while activating ACE, resets the quantities of TM19 through TM50 to x255.
Write out a modular code in the quantities of TM19 onward and run it using the first program.
This page assumes that you have previously set the quantities of all TMs to x255 and have a way to redirect execution to the TM/HM pocket.
Setting all TM quantities to x255 and redirecting execution to the TM/HM pocket
This section is a small compilation of box name codes that can be used for setting all TM quantities to 255, along with box name codes that redirect execution to the start of the TM/HM pocket. Methods of using these are elaborated on in the English GS guide and the international GS guide
Mail contents
If you are using a Wooper in your ACE setup, you can ignore this section.
English
German
French
Spanish
Italian
A A A A A A A A A A A A A A A A
A A p 'v 7 ' ] . 9 'l 'l 'l p 'm z 2
A A A A A A A A A A A A A A A A
A A ë R H é 8 2 ë 9 é ß 2 ä ß 2
A A A A A A A A A A A A A A A A
A A p û ç 2
A A A A A A A A A A A A A A A A
A A p ñ Á 2
A A A A A A A A A A A A A A A A
A A p ñ Á 2
Set all TM quantities to x255
English
German
French
Spanish
Italian
Box 1: A p 'v C é 2 2 5
Box 2: 'v j 'v u é 1 2 5
Box 3: 'v ♂ é 5 2 p 'v 9
Box 4: é 4 2 p é 6 2 5
Box 5: 'v u é 8 2 'v {space} 5
Box 6: é 7 2 'v : é 9 2
Box 7: 0 9 ♀ 5 ♀ 5 5 5
Box 8: 5 5 5 5 5 5 x 'd
Box 1: , 2 ö 8 2 W 5 5
Box 2: ö 8 2 W ö 8 2 o
Box 3: ö 8 2 w G ö 8 2
Box 4: G ö 8 2 G ö 8 2
Box 5: G ö 8 2 p ♀ Ö w
Box 6: ä , 2
Box 7: d J 5 T R w y 9
Box 8: A Ä
Box 1: A p é 3 2 u' 9
Box 2: é 1 2 u' c é 5 2
Box 3: H u' L é 6 2 ? b
Box 4: é , 2 u' ♂ é 2 2
Box 5: u' t é ♀ 2 ] 5
Box 6: p' , 2
Box 7: A ♀ ♀ ♀ ♀ p'
Box 1: A p é 3 2 ° 9
Box 2: é 1 2 ° D é ♀ 2
Box 3: È d é , 2 ° ♂
Box 4: é 2 2 È 9 é 6 2
Box 5: p ° Q é 5 2 0 9
Box 6: ñ , 2
Box 7: A ♀ ♀ ♀ ♀ ñ
Box 1: A p é 3 2 ° 9
Box 2: é 1 2 ° D é ♀ 2
Box 3: È d é , 2 ° ♂
Box 4: é 2 2 È 9 é 6 2
Box 5: p ° P é 5 2 0 9
Box 6: ñ , 2
Box 7: A ♀ ♀ ♀ ♀ ñ
Redirect execution to box codes
English
German
French
Spanish
Italian
Box 1: A p 'v C é 'd 2 5
Box 2: 5 5 5 5 5 5 h 'm
Box 3: ♀
Box 1: A p u' C é 0 2
Box 2: p' ♀ 2
Box 3-6: any
Box 7: p' ♀ ♀
A p ° C é 0 2 p
Box 2: ñ ♀ 2
Box 3-6: any
Box 7: ñ ♀ ♀
A p ° C é 0 2 p
Box 2: ñ ♀ 2
Box 3-6: any
Box 7: ñ ♀ ♀
Setup
Sell the following TMs until you reach the following final quantities:
TM
Final quantity
Amount sold for
TM01
33
3300000
TM02
144
111000
TM03
213
63000
TM04
240
15000
TM05
170
42500
TM06
203
78000
TM07
71
184000
TM08
202
26500
TM09
72
91500
TM10
39
324000
TM11
01
254000
TM12
32
127500
TM13
00
127500
TM14
62
289500
TM15
255
0
TM16
195
90000
TM17
LANGUAGE DEPENDENT
LANGUAGE DEPENDENT
TM18
49
206000
Language dependent TM
TM
English
German
French
Spanish
Italian
Final amount
Amount sold for
Final amount
Amount sold for
Final amount
Amount sold for
Final amount
Amount sold for
Final amount
Amount sold for
TM17
76
268500
121
201000
94
241500
112
214500
113
213000
Do not execute the ACE item yet!! This code only works properly when combined with one of the modular codes from the next section.
This code has two main functions:
By using the ACE item normally, the game will set up everything necessary to execute a set of script commands. When you close the start menu and return to the overworld, the game will execute script commands from the quantities of TM19 onward.
By using the ACE item while holding SELECT, the code immediately resets the quantities of TM19 through TM50. This erases the current modular code, allowing you to write a new modular code.
Please note that there are a few things to look out for:
Do NOT execute the setup without having written a modular code from the quantities of TM19 onward. Doing this will cause the game to freeze.
In a similar vein, do NOT reset the modular code if you have already queued up a script to execute after closing the start menu. Doing this will cause the game to freeze.
Ensure to properly read usage note for every modular code.
List of modular codes
Here you can find a list of modular codes to be used in combination with the above setup to execute a specific effect.
Better ACE environment (and fixing effects of earlier glitches)
This single use code adds a wrong pocket TM33 to your key item pack, along with installing everything so that using this TM33 will execute the setup code and modular code.
This means that you will no longer need specific pokémon in the first and second party slot to use ACE.
the non-EN version of this code also fixes the effect that duplicate key item swap has on the key item pocket along with removing the last party pokémon. This allows you to safely remove the glitch pokémon you got while obtaining duplicate key items.
With the exception of the quantities of TM43 through TM47, both the EN version of the code and the non-EN version of the code are exactly the same.
TM
EN: final quantity
EN: amount sold for
non-EN: final quantity
non-EN: amount sold for
TM19
14
361500
TM20
00
382500
TM21
149
53000
TM22
213
63000
TM23
144
166500
TM24
62
289500
TM25
225
30000
TM26
111
216000
TM27
52
101500
TM28
78
177000
TM29
09
246000
TM30
34
331500
TM31
54
301500
TM32
255
0
TM33
33
333000
TM34
24
115500
TM35
212
21500
TM36
62
96500
TM37
195
60000
TM38
34
221000
TM39
62
193000
TM40
126
64500
TM41
34
331500
TM42
54
301500
TM43
213
21000
TM44
33
333000
201
81000
TM45
34
331500
255
0
TM46
218
55500
255
0
TM47
53
303000
255
0
TM48
201
81000
255
0
Usage notes
This code is intended to only be used once.
For non-EN versions, ensure that you put the glitch pokémon in the bottommost party slot.
For non-EN versions, ensure you have at least two pokémon in your party.
Get any item
This code, when executed, will add a certain quantity of a certain item to the correct item pocket.
TM
Final quantity
Amount sold for
TM19
31
336000
TM20
XX
item ID
TM21
YY
item quantity
TM22
144
166500
Usage notes
The quantities of TM20 and TM21 need to be filled in yourself. You can find item IDs in the big hex list. Some interesting values to get started:
Item ID
Final quantity
Amount sold for
Master Ball
01
381000
Rare Candy
32
334500
Exp. Share
57
297000
PP Up
62
289500
Lucky Egg
126
193500
Do NOT use this code to obtain TMs. There is another modular code a bit further in that allows you to directly edit the moves of a pokémon.
Please ensure that you have enough space in your item packs to actually be able to add them.
Encounter shiny wild pokémon of XX species at YY level
This code, when executed, will trigger a wild encounter with a shiny wild pokémon of a specific species at a specific level.
TM
Final quantity
Amount sold for
TM19
92
244500
TM20
XX
pokémon species
TM21
YY
pokémon level
TM22
30
337500
TM23
03
378000
TM24
07
372000
TM25
94
161000
TM26
95
240000
TM27
144
55500
Usage notes
The encounter triggers immediately after exiting the start menu. Please note that you cannot run from this encounter.
The DVs of the encountered wild pokémon will always be 14/10/10/10. There is another modular code further on that allows you to edit the DVs of your party pokémon to another value if desired.
The value of TM20 corresponds to the pokémon's species and is directly related to the pokédex number. e.g. a quantity of 152 will result in an encounter with Chikorita.
The value of TM21 corresponds to the pokémon's level. e.g. a quantity of 5 will result in an encounter with a lvl 5 pokémon. It is recommended to set this quantity to 100 or less.
Encounter wild pokémon of XX species at YY level
This code, when executed, will trigger a wild encounter with a wild pokémon of a specific species at a specific level.
TM
Final quantity
Amount sold for
TM19
92
244500
TM20
XX
pokémon species
TM21
YY
pokémon level
TM22
94
161000
TM23
95
240000
TM24
144
55500
Usage notes
The encounter triggers immediately after exiting the start menu. Please note that you cannot run from this encounter.
The DVs of the encountered wild pokémon will be random. There is another modular code further on that allows you to edit the DVs of your party pokémon to another value if desired.
The value of TM20 corresponds to the pokémon's species and is directly related to the pokédex number. e.g. a quantity of 152 will result in an encounter with Chikorita.
The value of TM21 corresponds to the pokémon's level. e.g. a quantity of 5 will result in an encounter with a lvl 5 pokémon. It is recommended to set this quantity to 100 or less.
Obtain a VC transferable shiny Mew
This code triggers an encounter with a shiny lvl 5 Mew. After the battle has concluded, party pokémon #6's OT and ID are adjusted to match the data from the transferable event Mew.
TM
Final quantity
Amount sold for
TM19
92
244500
TM20
151
156000
TM21
05
125000
TM22
30
337500
TM23
03
378000
TM24
07
372000
TM25
94
161000
TM26
95
240000
TM27
14
120500
TM28
255
0
TM29
155
100000
TM30
213
63000
TM31
144
166500
TM32
33
222000
TM33
47
312000
TM34
219
18000
TM35
62
96500
TM36
89
83000
TM37
34
221000
TM38
54
201000
TM39
12
243000
TM40
46
104500
TM41
129
189000
TM42
62
289500
TM43
134
60500
TM44
34
331500
TM45
61
291000
TM46
34
331500
TM47
54
301500
TM48
80
262500
TM49
201
81000
Usage notes
Only use this code if you have exactly 5 pokémon in your party. The intent is that you catch Mew, then it gets set as your 6th party pokémon, after which its OT and ID get updated.
It is recommended that you have at least one Master Ball on hand to catch Mew easily.
The DVs of this Mew are guaranteed to be 14/10/10/10.
Set DVs of the third party pokémon based on values of TM28 and TM31
TM
EN: final quantity
EN: amount sold for
non-EN: final quantity
non-EN: amount sold for
TM19
14
361500
TM20
255
0
TM21
149
53000
TM22
213
63000
TM23
144
166500
TM24
33
333000
TM25
159
96000
TM26
218
55500
TM27
62
96500
TM28
XX
Attack & Defense DV
TM29
34
221000
TM30
54
301500
TM31
YY
Speed & Special DV
TM32
201
54000
Usage notes
Adjust the quantities of TM28 and TM31 according to the DVs you wish to use. Use the following formulas or the precalculated options below:
TM28 quantity = (16 x Attack DV) + Defense DV
TM31 quantity = (16 x Speed DV) + Special DV
DVs
TM
Final quantity
Amount sold for
Perfect DVs
TM28
255
00
TM31
255
00
Shiny, male gender
TM28
250
5000
TM31
170
127500
Shiny, female if possible
TM28
42
213000
TM31
170
127500
Set moves of the third party pokémon based on values of TM36 through TM39
TM
EN: final quantity
EN: amount sold for
TM19
14
361500
TM20
255
0
TM21
149
53000
TM22
213
63000
TM23
144
166500
TM24
33
333000
TM25
161
94000
TM26
213
63000
TM27
17
119000
TM28
140
115000
TM29
218
37000
TM30
1
381000
TM31
4
376500
TM32
0
255000
TM33
195
90000
TM34
LANGUAGE DEPENDENT
LANGUAGE DEPENDENT
TM35
49
103000
TM36
XX
Move slot #1
TM37
XX
Move slot #2
TM38
XX
Move slot #3
TM39
XX
Move slot #4
Language dependent TM
TM
English
German
French
Spanish
Italian
Final amount
Amount sold for
Final amount
Amount sold for
Final amount
Amount sold for
Final amount
Amount sold for
Final amount
Amount sold for
TM34
26
114500
71
92000
44
105500
62
96500
63
96000
Usage notes
Move IDs can be found on the Big HEX List big hex list. Use a quantity of 0 if you want the respective move slot to be empty.
Make sure to heal your pokémon at the pokémon center to properly reset PP values.
Set stat experience of the third party pokémon based on values of TM36 through TM45
TM
EN: final quantity
EN: amount sold for
TM19
14
361500
TM20
255
0
TM21
149
53000
TM22
213
63000
TM23
144
166500
TM24
33
333000
TM25
161
94000
TM26
213
63000
TM27
17
119000
TM28
149
106000
TM29
218
37000
TM30
1
381000
TM31
10
367500
TM32
0
255000
TM33
195
90000
TM34
LANGUAGE DEPENDENT
LANGUAGE DEPENDENT
TM35
49
103000
TM36
XX
HP upper byte
TM37
XX
HP lower byte
TM38
XX
Attack upper byte
TM39
XX
Attack lower byte
TM40
XX
Defense upper byte
TM41
XX
Defense lower byte
TM42
XX
Speed upper byte
TM43
XX
Speed lower byte
TM44
XX
Special upper byte
TM45
XX
Special lower byte
Language dependent TM
TM
English
German
French
Spanish
Italian
Final amount
Amount sold for
Final amount
Amount sold for
Final amount
Amount sold for
Final amount
Amount sold for
Final amount
Amount sold for
TM34
26
114500
71
92000
44
105500
62
96500
63
96000
Usage notes
If you wish to just maximise stat experience, leave the quantities of TM36 through TM45 at 255.
The actual stats of the pokémon aren't automatically updated after changing stat experience. Either level the pokémon or deposit and withdraw it from the storage system in order to properly update the pokémon's stats.
Cookies help us deliver our services. By using our services, you agree to our use of cookies.