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.

There are lots of tutorials in the tutorials section, the trick is being patient and want to understand how it all works. Starting from the beginning is always the first step but some people seem to want to rush straight into the more complicated stuff. I'd recommend having a folder with a spare ROM to test your scripts and then just save them as text files when they work. Or you could go a step further and study and break down in game scripts to see how they work.

Right. I know that there is a patch somewhere for Emerald that makes all the Pokemon names (and possibly moves and abilities, I don't remember all that well) all in titlecase (so Pikachu instead of PIKACHU). I cannot find it again.

My husband is testing my hack and he ran into a shiny gligar. He threw the only ball he had on him, a master ball, and caught it. However, it turned into a bad egg. He's since tested the master ball on other wild pokemon and they haven't become bad eggs...any ideas?

Once you create the script, which it will do for any pokemon, just search through the menus, make sure you put it into a place where there is nothig but free space so you can edit it. Add the comand hidesprite 0x(person number) to the part of the script you want it to disappear at. Then set an unsed flag. Set the number of that flag to the person id of the sprite in amap. This will make it stay gone when the flag is set.

I want a trainer to "reactivate" when you leave and reenter an area, but have not found a way to actually make a trainer challenge you a second time. This is not a VS. Seeker rematch, nor someone you speak to. I simply want the trainer to act as if you had not defeated them the first time, seeing and challenging you as usual.

Unfortunately, I don't know what offset the flag for this is at: the trainerbattle command handles this automatically.

This might be a complicated job but maybe not. In any way, you're possibly going to have to re-code something with assembly.

If you open VBA's "Palette Viewer", you can notice the palettes are loaded to ram starting at 0x05000000. I might be able to help you out better if I knew what the palette map would look like in your hack but in original FireRed, it looks like the battle background palette starts at 0x05000042 (I noticed this by checking how the palette ram was affected in the first rival battle in Oak's lab when the palettes turn gray during Oak's speech.

So somewhere in that region, probably before 0x050000C0 (where some black palette data is located, again in original FireRed) you have some tiles using their palette as 0x7FFF (FF 7F) or values similar to that, leading into the white screen being part of battle background.

You should somehow debug how those palettes are loaded and by modifying some routines, change them into similar values that represent the new battle background you have got there.

Once you create the script, which it will do for any pokemon, just search through the menus, make sure you put it into a place where there is nothig but free space so you can edit it. Add the comand hidesprite 0x(person number) to the part of the script you want it to disappear at. Then set an unsed flag. Set the number of that flag to the person id of the sprite in amap. This will make it stay gone when the flag is set.

My set sprites vanished once i leave the screen but shouldn't it vanish right away I'm using PKSV-UI for the flag list since i don't know where one is
Scratch that I saw on a tut a comment of a Kygore thing that got my results and my Kygore vanished right away after catching it

This might be a complicated job but maybe not. In any way, you're possibly going to have to re-code something with assembly.

If you open VBA's "Palette Viewer", you can notice the palettes are loaded to ram starting at 0x05000000. I might be able to help you out better if I knew what the palette map would look like in your hack but in original FireRed, it looks like the battle background palette starts at 0x05000042 (I noticed this by checking how the palette ram was affected in the first rival battle in Oak's lab when the palettes turn gray during Oak's speech.

So somewhere in that region, probably before 0x050000C0 (where some black palette data is located, again in original FireRed) you have some tiles using their palette as 0x7FFF (FF 7F) or values similar to that, leading into the white screen being part of battle background.

You should somehow debug how those palettes are loaded and by modifying some routines, change them into similar values that represent the new battle background you have got there.

Yeah, I made a trainer script added it in but then that happens when i am a step away from said trainer. (It happens on all trainers)
This only happens if the trainer box is ticked. The script works fine if you talk to them.
Also if you battle them then they notice you again (By talking to the side then walking in front of them)

I want a trainer to "reactivate" when you leave and reenter an area, but have not found a way to actually make a trainer challenge you a second time. This is not a VS. Seeker rematch, nor someone you speak to. I simply want the trainer to act as if you had not defeated them the first time, seeing and challenging you as usual.

Unfortunately, I don't know what offset the flag for this is at: the trainerbattle command handles this automatically.

Now, everytime you enter the map, it should set the flag and allow you to battle them. Trainers have their own set of flags and it is simply just their number.

I know what you're thinking, shouldn't the flag be clear to battle? Just for anyone seeing this, trainer flags work oposite of regular flags. I saw a post once that explained why, and it's not really backwards, but I can't remember exactly how he put it. So, it's easiest just to remember it as backwards.

I know that there are a few specials that are "corrupt" and will reset the game to just after gameboy introduction when the copyright comes up. Are you looking for this effect, like after the credits finish rolling, or directly to the titlescreen?

It looks like you've only partially set which palette your background should use, rather than all of it. If you open your tileset/ tilemap combo in NTME, scroll down and switch to the palette view there should be a large section of the tilemap which has a different palette to the one you want. Reassign the palette used by these tiles, reinsert the tilemap and everything should look okay in-game.

It also looks like the white tiles are repeating over and over again, so I'm assuming that you haven't edited the lower half of the tilemap at all. You're going to have to do this as well if you want a seamless transition in the opening battlescreen.

If there is anything, it will be in the rom hack resouces thread stickied just below this one. Most of those tilesets you see in hacks are drawn by the creater of the hack, specifically for their hack. So, if you're not an artist, and you can't find a rom base, you'll need to enlist an artist. Its a very sought after thing.

Quote originally posted by klemniops:

I have some questions about person events:

If I use a script to move a person event from one place to another, how can I have that event stay in the place when I warp away from and back to that map?

How can I have an event start hidden? I have a map with many rock smash person events, but I don't want them to be visible until a level script is run.

For the first one, use the comand movesprite2 after the movement. It is set up like this:

movesprite2 0x(person ID) 0x(x-coordinate) 0x(y-coordinate)

The second one is a little bit tougher. Different people have different opinions and I've done it more than one way. One option is to set their person ID as a flag number you are going to use. Then have that flag be set before the player enters the map. This will make them dissapear. Then, in the level script, clear the flag and the use the showsprite command inbetween two fadescreens to show them.

-If the player is not in view of the rocks when the level script is called, you may not need the fadescreens.

The other way I know only works for small objects, so it should work for rocks. Set their behavior in Amap as te second (or is it third?) hidden option. Yes, there is a differnce between them. This should make them appear invisible and unfeelable. Then, you can call a showsprite inbetween two fadescreen commands to show them, please note that with this methood, the rocks will dissappear if the player leaves the view of the rocks. I think there may be a permant showsprite command, but I'm not sure. Look into the command database built into XSE and see.

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.