How To Hack Your Own Pokémon

How To Hack Your Own Pokémon

Some people turn their noses up at hacked Pokémon, in the same way that people look down, say, a fake Rolex. But let's say you wanted a hacked Pokémon to play within your own copy of Omega Ruby/Alpha Sapphire or Pokémon X/Y. Here's how to make one.

Earlier this week we covered how Pokémon cheaters figured out a way to use the 3DS camera to import Pokemon — premade Pokémon. Today, we're going to walk you through how to actually make your own Pokémon, instead of simply importing pre-made ones. You're going to need three things:

1) An older 3DS. The New 3DS doesn't work with this exploit.

2) This program, which is only available for PCs. Sorry, Mac users.

3) An internet connection. Your 3DS must be connected to the internet, and you must be able to move files from your computer to a website online.

And... that's it. That's right, you don't need to purchase something like an Action Replay.

First thing's first. You need to download PKHeX, a program that lets you edit your Pokémon game. Open the program up. You're going to see something like this:

How To Hack Your Own Pokémon

It looks daunting, but don't sweat it. You're mostly going to be punching in info to the relevant boxes, and the entire thing should be over in about 25 minutes, tops.

The first thing you're going to want to do is, click on "Tools", and then select "Toggle Box Interface." Your screen should now look like this:

How To Hack Your Own Pokémon

On the first tab, you're going to have to input all the relevant information. For PID, click on "reroll." The program should give you a number automatically. This is short for "Pokemon ID Number," and you can read more about that here — don't worry about it for these purposes.

If you want this Pokémon to be shiny, click on the star icon next to the PID number. If you don't care about that, leave it alone.

Next, select your species. What Pokémon do you want? You can pick anything, including Pokemon that aren't actually released yet. But do note that you'll have to jump through extra hoops should you decide to generate a hacked legendary or event Pokémon — so while your first instinct might be "LETS MAKE A HOOPA!," it might be a bigger headache than you're anticipating.

In any case, under that you can dictate the level of the Pokémon you're creating. Don't worry about figuring out the amount of experience — just type in the level you want, and it will automaticlaly fill in the specific experience amount to make that.

Under that, you can choose what nature the Pokémon is, and what they're holding. All personal preference — go nuts.

Next, you can punch in how friendly the Pokémon is. 255 is the max, and there's no reason not to max it out, really. Friendlier Pokémon grant you bonuses in-game. If your Pokémon comes in different forms, then select your desired one right next door, too. Otherwise, don't worry about it.

Then, you can decide if you want the Pokémon as an egg, if you want the Pokémon to have Pokerus, or if you don't want it to be susceptible to Pokerus. I'd keep this simple. Don't make a level 50 Pokémon into an egg. Don't cure your Pokémon, either.

Finally, select your country and the region of your 3DS. Don't mess around with this — put in your actual info. If you're following along, you should end up with something like this:

How To Hack Your Own Pokémon

In my case, I'm making a high-level shiny Bidoof named Butts. He's jolly, friendly to me, and he's American. Cool.

OK! That's one tab down. A few more to go. These ones should be a bit quicker. Next, click on the "Met" tab. It should take you to something that looks like this:

How To Hack Your Own Pokémon

I would also keep things simple here. For origin game, set it to either ORAS or X & Y, unless it's impossible to attain the Pokémon in either of those games. In that case, you'll want to get specific about where this Pokémon would normally appear. For the rest of us, though, "AS" does fine.

Next, met location. If you care about making this look legit, select an area where the Pokémon would actually appear. If you don't care, just select whatever.

Ball should be obvious: that's where you can specify what ball the Pokémon will appear in. Met level is also up to you, but again, if you want to make it legit, you might want to look up around what levels the Pokémon in question appears at in the area you selected beforehand. Consistency!

Under that, you can say when you met the Pokémon you're creating. It will default to the year 2000, but under the calendar menu, there should be something that says "Today's Date." Tweak as desired.

Then, you can select whether or not you met this Pokémon as an egg. Whether or not you want to say that depends on whether or not you want to make the Pokémon look legit — do you want to make it seem as if you hatched this Pokémon, for example? Is that actually possible with the Pokémon in question? If not, don't select "as egg." This is the sort of thing you'll want to look up, if you care.

This is what I ended up with — I'm not really concerned about making this look real, because it's not, soooo...

How To Hack Your Own Pokémon

Now we're getting to the fun stuff. Click on the "Stats" tab. It should look like this:

How To Hack Your Own Pokémon

If you have a specific idea of what your Pokémon build should look like, input your numbers. This will only apply to hardcore players, but for the rest of you...IV determines how strong a specific stat is - 31 is the highest, 1 is the lowest. EVs determine how much training you're giving a specific stat. You can read more about these hidden stats here — for now suffice it to say that, the higher an IV is, the stronger your Pokémon is. So feel free to click on "randomize IVs" until you get a sort of build that's acceptable to you, that emphasises your desired stat. Same thing with EVs...just make sure that the total at the bottom doesn't exceed 510. Anything more than 510 is not actually possible in the game.

If you don't care about the stats of your hacked Pokémon, simply click "randomize IVs" once and "randomize EVs" once. Boom. You're done with that part of the program.

Next, click on the Attacks tab. It should look like this:

How To Hack Your Own Pokémon

Here, you can select four different moves for your Pokémon, as well as how much PP the move has. You can give your Pokémon any move whatsoever, even if it can't normally learn that move in-game. Of course, again, if you want to make something that's not completely ridiculous, you might want to stick to moves that the Pokémon can actually learn. This will require research. I recommend Bulbapedia, where you can see what moves a Pokemon can learn and when. Since I'm doing this for demonstrative purposes, I don't actually care what my Bidoof knows — I picked the moves completely at random, and it automatically filled in how much PP those moves normally have:

How To Hack Your Own Pokémon

I'm not even sure Bidoof can learn any of these moves. Yay, cheating.

OK, we're almost at the home stretch here. Click on "OT/Misc." It should look like this:

How To Hack Your Own Pokémon

TID/SID aren't really things you have to worry about if you're solely going to be using this Pokémon in your own copy of the game (versus playing multiplayer) so...we're not going to cover it here. Just leave it as-is. OT, however, is the original trainer — you might want to put something in there. Ideally, your in-game trainer name.

Once you do that, click on "Encryption Constant: Reroll" once. You're almost done! Now that you've done all that, go back to each individual tab and make sure the info is correct/what you want it to be. If everything seems squared off to you, right click on the uppermost left square of the green box area, and click "set." Whatever Pokémon you created should now appear on this spot:

How To Hack Your Own Pokémon

Now click on 'File,' and save the Pokémon. Put the file on your desktop. That will make the next step easier.

Now, once you have the file on your desktop, open up this page. Drag the file you just saved from your desktop to the square on the page. It should automatically generate a QR code for you, like so:

How To Hack Your Own Pokémon

Mind, that specific QR code is for Butts the Bidoof. Yours will look different!

With that in hand, you can begin the importing process. We originally described how to do that in this post, but we'll take you through all the steps in this post, too.

First, you'll need to grab your 3DS. Open up your internet browser, and delete both your history and cookies. You can find both of these options in the settings menu:

How To Hack Your Own Pokémon

Then, you need to access your in-game PC in whatever Pokémon game you're playing, and you need to leave the first slot in the first box empty, like so:

How To Hack Your Own Pokémon

Try the 'organise boxes' option for the fastest results.

Then, after making sure that your character is still standing in front of the PC, press the home button on your 3DS. Open up the camera. You can do this quickly by pressing the L and R buttons on your 3DS.

Tap on the QR code reader icon, and scan your the code you just generated. Once you scan a code, you should get something like this:

How To Hack Your Own Pokémon

Tap 'OK.' The 3DS should ask you if you want to open up the link. If you say yes, the browser will crash, and you'll get an error message. From here, you can go back into your game. Open up the PC, check the first slot, and voila. Your hacked monster awaits. Here's my program-created Butts the Bidoof, for example:

How To Hack Your Own Pokémon

Note that, in the actual box, Bidoof appears as invisible. If that happens to your Pokemon, don't worry. Just leave the box, and then re-open it. The Pokemon should now appear as he normally would. It should also work in-game, too! Here's Butts the Bidoof in action:

How To Hack Your Own Pokémon

Happy battling!


    Nintendo was very unhappy when there was an iPhone app that let you hack a 'mon and send it via local trading at one point. Then stuff like this gets through.
    New generation, new security, and new exploit vectors... This seems like something that may need a firmware update to fix, too.

      Why doesn't it work for the new 3ds xl!

    Having worked on complex software projects, I'm not too surprised that it is possible to cause the browser to crash and run untrusted code. But why is the OS allowing the web browser to modify another application's memory?

      theres another way as well which leats you copy the box data from the application, modify it, then inject your modified box back into your game. Then you save. However you only get the pokedex entries if you put them in and out of daycare/battle

        Right, but that still sounds like it is one process accessing the memory of a second. Surely that's something the kernel should be blocking, right?

    Its an exploit. Taking advantage of, ya know, flaws in the OS code or design of software/oversight in interaction with other software. Kinda obvious. If you worked in "complex software projects" then surely you wouldn't ask such a dumb question.

    Who cares if people use hacked Pokemon, its just a game.

      My point is that while certain pages being able to crash the browser and execute arbitrary code is not that surprising, being able to use that to overwrite memory of another process is. The MMU hardware should prevent that kind of thing without the help of the kernel.

      So either (a) there is a second bug in the 3DS kernel, or (b) the kernel is broken by design and doesn't properly isolate processes. In this day and age, I'd hope it isn't (b). And if it is (a), it would be interesting to know what the second vulnerability is.
    PKHeX was ported to Mac :)

    Good thing i have a new 3ds xl and a old 3ds! ^O^

    Nevermind, it still didn't work. (Poor me, back to powersaves)

Join the discussion!

Trending Stories Right Now