BDSP Fishing RNG

Learn the entire process of manipulating Pokémon from fishing encounters.

Fishing encounters refer to encounters that are deliberately triggered by throwing a fishing rod into a body of water. Old Rod, Good Rod and Super Rod can be used to generate a fishing encounter but the table of Pokémon that can be generated will change depending on the type of rod that was used.

Important - Fishing RNG currently requires THIS FORK OF POKEFINDER by Real96. At the time of writing this guide the main repository for PokeFinder does not properly support fishing RNG. Contact me on Discord by joining our support server if you notice that the main repository for PokeFinder has been updated with fishing support.
Missed the initial setup instructions? Go back to the main page!
Understanding BDSP RNG
How Does This Work?

In Brilliant Diamond/Shining Pearl the game determines the outcome of "random" events using a constantly advancing RNG seed. Using tools like PokeFinder and SysBot.NET we are able to predict the outcome of these random events and understand exactly when a desirable result will be produced and take advantage of this.

Moarencounterbots is able to track and monitor RNG seeds in real time as well as advance the RNG state until a given point, removing the vast majority of work that would otherwise be tedious. This allows the player to put their efforts into more important factors like hitting their target frame instead.

Additional Information

Fishing manipulation consists of two separate phases. The first phase is hooking the encounter by using a fishing rod, which determines and locks in the Pokémon species. The second phase is reeling it in, which determines internal details such as IVs, nature, and shiny status. Essentially we will be performing two seperate RNGs to obtain a specified target Pokémon.

Any Pokémon found via fishing can also be hatched from egg, egg RNG manipulation is much more stable so we recommend using it instead of fishing RNG manipulation where possible. If you're aware of the added instability that comes with fishing RNG manipulation and still wish to proceed, continue following the content on this page.


Figure 1 - PokeFinder Setup

fishing-1
PokeFinder Setup

Click the Gen 8 -> wild button after launching PokeFinder to open the main window for fishing manipulation. Here is where we will fill in all the details about the Pokémon being hunted.

RNG Setup
  • Select the correct Profile in the dropdown menu at the top.
  • Select the fishing rod you plan to use in the Encounter dropdown menu on the left.
  • Underneath, select the Location, Time & Pokémon encounter details.
  • Select Lead if you are using a Pokémon with an influencing ability (e.g. Synchronize).
  • Enter the amount of advances you wish to search through into the Max Advances field.
  • Configure your search filters, such as filtering for a shiny Pokémon with 0 IVs in attack.
  • You do not need to configure a delay. The internal details of the Pokémon are generated on the exact frame it was reeled in on.

Having a Pokemon with the ability Syncronize ensures that all encountered Pokémon have the same nature as your synchronizer. Ensure that your synchronizer is the first team member in your party or it will not work.


Figure 2 - Finding Your Seed

fishing-2
Finding Current Seed

To easily obtain your current seed at any given point you can use the EncBotCopySeedBS routine in Moarencounterbots. If you have already followed the setup instructions found on the main page the bot should be configured to output the seed in the way PokeFinder expects. If you did not do this yet or your settings have changed for whatever reason, follow these instructions:

Settings Toggles
  1. Open SysBot.exe and navigate to the Hub tab.
  2. Open the EncounterRNGBS dropdown menu to display the relevant settings.
  3. Under DisplaySeedMode, select Bit64PokeFinder.
  4. Set the value in MonitorRefreshRate to 0.
Grabbing Seed Information
  1. Navigate back to the Bots tab, enter your IP address, then add EncBotCopySeedBS.
  2. Stand in the overworld in-game, press the Home button, then click Start All.
  3. Navigate to the Logs tab. Your seed should be visible here (split into 2 sections referred to as "Seed 0" and "Seed 1").
  4. By default your seed will be copied to clipboard, but pasting directly into PokeFinder will not work.
    • Copy the top half of the seed into the Seed 0 field of PokeFinder.
    • Copy the bottom half of the seed into the Seed 1 field of PokeFinder.
  5. Click the Generate button to search for targets that match your parameters.

If you do not find any results consider increasing your search range, applying less strict search filters, or restarting the game to generate a new seed. Repeat this process until a desirable seed has been found.


The Process

Step-by-step instructions for hitting a target frame can be found here.

Figure 3 - Target Found

fishing-3
Target Found

In Figure 3 we can see a shiny Gyarados will be produced in 13,731 advances, the goal will be to reel the Pokémon in on this exact frame, but first we will need to find a frame that is close to our target frame that will generate the desired Pokémon species, known as the "hook frame". To do this we will need to do a seperate PokeFinder search.

  1. Manually remove any search filters you may have applied, excluding the encounter slot filter (e.g IVs, Shiny, Nature, Ability, Gender or Hidden Power filters).
    • Do not click Disable Filters checkbox, this will not work for our use case as we need to preserve the encounter slot filter.
  2. Take note of your current target frame in a text editor such as Notepad, you will need this information later.
    • In my case my shiny target is on advance x so I will take note of this in my text editor.
  3. Search again, this time you will need to find a frame that is close to your target that will hook the Pokémon.
    • This is indicated by the Hook column of the search result table, look for any frame that has a Yes that is close to your target frame.
    • Aim to find a hook frame within 500-1000 advances of your actual target frame, this will reduce the wait time after throwing the rod into the water.
  4. Once you have found your hook frame you will need to use a calculator to find the offset between your hook frame and your target frame (target frame - hook frame = hook frame offset).
    • In my case, my target frame is 13,731 and my hook frame is 13,469, subtracting 13,469 from 13,731 gives a difference/offset of 262.

Figure 4 - Hook Frame Found

fishing-4
Target Found

Once you've identified your hook frame and calculated the offset you can reapply any previously set search filters and search for your actual target frame again. We will now need to advance the RNG state to the desired hook frame.

EncBotDexFlipBS Setup
  1. Navigate to the Hub tab and open the EncounterRNGBS dropdown menu.
  2. Set your MaxTotalAdvances relative to the amount needed to reach your target frame.
    • It is recommended to subtract 10,000 from the total number of required advances to give yourself time to position your character properly after the seed advancing has been completed.
  3. Head back to the Bots tab and remove any currently active bots.
  4. Add the EncBotRNGMonitorBS and EncBotDexFlipBS bots instead.
  5. Open the Pokedex in-game in either Sinnoh or National mode.
    • Enter a section of the Pokédex that has at least 10 registered Pokémon in a row to increase effectiveness of the DexFlip routine. It is recommended to place cursor somewhere in the middle of the Pokédex if you can.
  6. Disconnect any controllers, then click the Start All button on Moarencounterbots.
    • If everything was done correctly you should now see that the bot has started to flip between Pokédex entries very quickly.
  7. Navigate to the Logs tab and wait for the DexFlip routine to complete.
  8. Click Stop All once DexFlip has finished to completely stop any active bots.

If the bot does not begin flicking through Pokedex entries after clicking Start All to initiate the DexFlip routine, stop the bot and confirm that all controllers have been fully disconnected and click Start All again. This routine relies on taking control of button inputs and will not work if any other controllers are connected to the device. Controllers can be resynced after the routine has completed.


Figure 5 - DexFlip Complete

fishing-5
Hitting Your Target

At this point you should be around 10,000 advances or less away from your target hook frame. To confirm exactly how far away you are you will need to remove all currently active bots, then add and start EncBotCopySeedBS.

Step-by-step
  1. Press the Home button, then run EncBotCopySeedBS and enter your new seed into PokeFinder. Search for your target again with any relevant search filters applied to get your new "reel in" frame.
  2. You should have calculated the hook frame offset earlier, subtract the offset from the new target frame to get your new hook frame, take note of the new hook frame and target frame in a text editor if needed.
    • In my case I had a hook frame offset of 262, so I can subtract this from my new target frame (2626) to get the new hook frame (2364).
  3. Remove EncBotCopySeedBS and add and start EncBotRNGMonitorBS instead to begin monitoring your RNG state.
    • Confirm that you have started a fresh instance of EncBotRNGMonitorBS. Seed monitoring should begin from advance 0, NOT wherever you left off!
  4. Head to the location of your desired Pokémon in-game if you have not already done so. Surf on any body of water and face a direction where you can throw in your fishing rod.
  5. Resume the game and observe how quickly the RNG state is advancing. Your next action will depend on the speed of the natural RNG advances.
    • If the RNG state is advancing slowly, manually scroll your Pokédex slowly until you 1000 advances (or less) away from your target, then open your bag.
    • If the RNG state is advancing quickly, manually scroll your Pokédex slowly until you 1000 advances (or more) away from your target, then open your bag.
    • In any case, at this point you should have your bag open on the fishing rod selection screen.
  6. Monitor the RNG state until you reach your target hook frame, then throw your rod into the water. The frame the rod is thrown into the water should match the exact frame you noted down earlier.
    • Be prepared to press the A button once as the ! appears over the players head or your Pokémon will escape! Do not mash the A button as this will cause the encounter to generate on the wrong frame.
  7. You should now be on the Landed a Pokémon! textbox. The species manipulation process has now been completed and we can instead focus on hitting our target frame.
  8. Allow the RNG state to naturally advance until you reach your expected target frame, then press the A button to reel the Pokémon in as quickly as possible.
    • A technique called "Home button mashing" is used to help ensure that we land directly onto our target frame. Quickly pressing the Home button twice will resume, then pause the game. We can use this technique to inch closer to our target frame and land directly onto it in most cases.
    • In the unlikely event that we cannot land directly onto our target frame this will need to be treated as a failure and you will need to restart the process again by finding a new seed and target frame.

Figure 6 - Hook Frame Hit

fishing-6

We hit our hook frame on advance x and now have a fish on the line, now we need to wait on this screen until our true target frame and reel the encounter in as quickly as possible to produce our expected result.

Figure 7 - Target Frame Hit

fishing-7

We can see that the internal details of the Gyarados match the PokeFinder search results, mission accomplished!

Missed your target frame? Visit encounter troubleshooting! Send me back to the main page!