[Tutorial] Item Creation in FireRed: Step by Step, From Start to Finish

Notices

Welcome to the PokéCommunity!

Hi there! Thanks for visiting PokéCommunity. We’re a group of Pokémon fans dedicated to providing the best place on the Internet for discussing ideas and sharing fan-made content. Welcome! We’re glad you’re here.

In order to join our community we need you to create an account with us. Doing so will allow you to make posts, submit and view fan art and fan fiction, download fan-made games, and much more. It’s quick and easy; just click here and follow the instructions.

Sorry if I'm bothering you, but while following your tutorial I accidentally indexed the "??????" after the Green Shard a 34, without noticing that my Green Shard is indexed at 51 and not 33. The game runs fine, and I can receive my item normally, but I can no longer edit the items with any editor.

I have tried using thethethe's (sorry if I misspelled it), ZodiacDaGreat's and Team Snag Em's version of thethethe. Any ideas on how I could fix this? I don't mind if it requires some or a lot of HEX Editing. Any assistance is appreciated!

Sorry if I'm bothering you, but while following your tutorial I accidentally indexed the "??????" after the Green Shard a 34, without noticing that my Green Shard is indexed at 51 and not 33. The game runs fine, and I can receive my item normally, but I can no longer edit the items with any editor.

I think you may have made other mistakes besides assigning the wrong index, as setting a bad index shouldn't break item editors. (Technically speaking, the index was already bad.) Unfortunately, I've no clue what could cause this problem or how to fix it.

I think you may have made other mistakes besides assigning the wrong index, as setting a bad index shouldn't break item editors. (Technically speaking, the index was already bad.) Unfortunately, I've no clue what could cause this problem or how to fix it.

No worries! I didn't have a backup xD! I opened the game with a HEX editor and went to the offset in which the item data is stored in. The first few bytes were rather screwed up, so I changed them with new ones from a clean ROM. I saved and opened the item editor and it worked fine! xD! Thanks for your response though.

I have no idea why the index was 51. The clean ROM I have has the same number. xD!

Evolution stones are trivially easy to make, and they do not require any sort of script.

Going from this tutorial, follow it up until the step on Item Manager. When you get there, go ahead and do what he tells you (the item's index, name, and description), but also check the values for one of the existing evolutionary stones (the specials and things like that). Set all of those exactly the same in your new stone.

Then, convert the item's index into decimal, subtract 13 from it, and multiply the result by 4. Now, convert the result into hex, and add it to 0x2528BC. Open up your hex editor, and go to that address, and replace what is there with "56 28 25 08.

Now, if you set a Pokemon to evolve using your item, it'll work.

Then, continue his tutorial through the image and palette inserting and you're done - you do not need to do any kind of script. For this method (and it is the only method I know of), you do not even need JPAN's Hacked Engine.
EDIT: This is very late, but I should've mentioned this - this method works with FR. Offsets will be different for RSE or LG.

Evolution stones are trivially easy to make, and they do not require any sort of script.

Going from this tutorial, follow it up until the step on Item Manager. When you get there, go ahead and do what he tells you (the item's index, name, and description), but also check the values for one of the existing evolutionary stones (the specials and things like that). Set all of those exactly the same in your new stone.

Then, convert the item's index into decimal, subtract 13 from it, and multiply the result by 4. Now, convert the result into hex, and add it to 0x2528BC. Open up your hex editor, and go to that address, and replace what is there with "56 28 25 08.

Now, if you set a Pokemon to evolve using your item, it'll work.

Then, continue his tutorial through the image and palette inserting and you're done - you do not need to do any kind of script. For this method (and it is the only method I know of), you do not even need JPAN's Hacked Engine.

Evolution stones are trivially easy to make, and they do not require any sort of script.

Going from this tutorial, follow it up until the step on Item Manager. When you get there, go ahead and do what he tells you (the item's index, name, and description), but also check the values for one of the existing evolutionary stones (the specials and things like that). Set all of those exactly the same in your new stone.

Then, convert the item's index into decimal, subtract 13 from it, and multiply the result by 4. Now, convert the result into hex, and add it to 0x2528BC. Open up your hex editor, and go to that address, and replace what is there with "56 28 25 08.

Now, if you set a Pokemon to evolve using your item, it'll work.

Then, continue his tutorial through the image and palette inserting and you're done - you do not need to do any kind of script. For this method (and it is the only method I know of), you do not even need JPAN's Hacked Engine.

Evolution stones are trivially easy to make, and they do not require any sort of script.

Going from this tutorial, follow it up until the step on Item Manager. When you get there, go ahead and do what he tells you (the item's index, name, and description), but also check the values for one of the existing evolutionary stones (the specials and things like that). Set all of those exactly the same in your new stone.

Then, convert the item's index into decimal, subtract 13 from it, and multiply the result by 4. Now, convert the result into hex, and add it to 0x2528BC. Open up your hex editor, and go to that address, and replace what is there with "56 28 25 08.

Now, if you set a Pokemon to evolve using your item, it'll work.

Then, continue his tutorial through the image and palette inserting and you're done - you do not need to do any kind of script. For this method (and it is the only method I know of), you do not even need JPAN's Hacked Engine.

I did all of this and everything seems to work fine except when I set Pokemon to evolve with the item they don't. For testing purposes I set Bulbasaur to evolve into Butterfree using the item but when I tried to use it it said it would have no effect. I'm not sure but the hex editor might be my problem, do I just replace the first four values or the whole 16 value line?

To give some more info:

I made the index number 34, subtracted 13 to get 21, multiplied that by 4 to get 84, switched it to hex and got 54, added it to 0x2528BC to get 0x252910.

convert 34 to decimal, so u should get 52 subtract 13, to get 39, multiply by 4 to get 156, convert to hex to get 9C, add that to 0x2528BC, and get 0x252958, go to that offset, the first four digits from that offset should be 00 00 00 00 (assuming ur using a blank space)

not sure if the math is right, so u'd have to check it.

An offset specifies only 1 byte. since ur hex editor displays 16 bytes per row, add the hex number of the row to the hex number of the column, thats the offset of the byte ur on. u'd start from the byte that gets highlighted when u use the goto function.

convert 34 to decimal, so u should get 52 subtract 13, to get 39, multiply by 4 to get 156, convert to hex to get 9C, add that to 0x2528BC, and get 0x252958, go to that offset, the first four digits from that offset should be 00 00 00 00 (assuming ur using a blank space)

not sure if the math is right, so u'd have to check it.

An offset specifies only 1 byte. since ur hex editor displays 16 bytes per row, add the hex number of the row to the hex number of the column, thats the offset of the byte ur on. u'd start from the byte that gets highlighted when u use the goto function.

Using Item editor, create a clone item of a Potion. Make sure it looks like this:

(The reason I have ?'s is that I haven't actually saved the item to my ROM, the index I'm using happens to be 72, change it to whatever your item's index is). Obviously, you can have the price, name, and pictures be whatever you desire.

Now, on your cloned item, the "Special" values should be 00 and 20, correct?

That 20 stands for how much HP it recovers! So if you change that to 90, it will recover 90 HP. Easy huh?
(Note, I haven't actually tested it, but it should work in theory).

__________________

Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!

Fantastic post, but they are only trivially easy to make if they act like the "old" evolution stones. That is, the ones already in the game.

If you want to create the function of the Dawn Stone, for example, you require extra code to deal with the male/female only aspect of it.

Using Item editor, create a clone item of a Potion. Make sure it looks like this:

(The reason I have ?'s is that I haven't actually saved the item to my ROM, the index I'm using happens to be 72, change it to whatever your item's index is). Obviously, you can have the price, name, and pictures be whatever you desire.

Now, on your cloned item, the "Special" values should be 00 and 20, correct?

That 20 stands for how much HP it recovers! So if you change that to 90, it will recover 90 HP. Easy huh?
(Note, I haven't actually tested it, but it should work in theory).

Look for an item that already does that, and see if it has special values that work like those found on Potions. If so, then the Potion trick should work; if not, then you'll probably need ASM or something.

Everything works great, I get my item image, name and price working and in place, and the index number (I think I even got my new evolutionary stones working though I've not tested this yet due to being between 3 computers) however, when I change my description pointer it seems to work fine but the first ?????? and masterballs names get changed to parts of my new description.

When I reload my game (in either version of item edtor) it brings up a 308 error and crashes meaning I can't add the rest of my item descriptions, I haven't had chance to test if the first ?????? and masterball work properly in-game yet due to a-mart not working on this computer.

All pokeballs use the same battle usage number and the same battle usage pointer. Have you tried following the pointer and recreating a pokeball from the data held in there? (though i think i read somewhere that creating a pokeball would require ASM hacking knowledge)

The PokéCommunity

Meta

Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, or The Pokémon Company International. We just love Pokémon.