-
Notifications
You must be signed in to change notification settings - Fork 1
BDSP EncounterBots
Random encountering is silly when RNG abuse exists, so these bots will be tools to facilitate RNG abuse. I don't write the guides for RNG abuse and what I'm doing is probably not The Official Method, so it's your responsibility to learn how the actual RNG manipulation works.
I won't ever make tools to RNG abuse a target for you, because that's the equivalent of you plugging in my toaster and boasting about the quality of your toast. These tools will only do the most boring, tedious, and unskilled tasks to help you in your RNG endeavors.
This bot resets the game and checks the game's main RNG for a desired TID, then advances for it. You should have no save data and start it on the language selection screen when you first launch the game.
Once a match is found, the bot will advance until it is within 15 advances of the target TID, then minimize the game by clicking HOME. You can then perform the remaining advances and select your character to complete the TID RNG yourself.
It assumes that you want the first language on the screen. You can change the default language by changing the Switch console language. If this isn't working for your language, edit the keypresses before compiling.
- EncounterRNGBS > MaxTIDAdvances: Set how far you want the bot to search for a TID. It takes about 2.5 hours for 10000 advances.
-
StopConditions > TargetTIDBS: List of TIDs to look for separated by commas. Use the full 6-digit TID, e.g.
010101, 000666, 987354
. - EncounterRNGBS > DisplaySeedMode: Changes the final output to be one 128-bit value, two 64-bit values, or four 32-bit values.
Tool for the lazy to reset and check initial seeds. Clicking "Start" copies the global RNG state to clipboard and outputs it in the log.
- 128-bit output is directly from RAM.
- 64-bit output is in the order s0, s1. It is directly read from RAM.
- 64-bit PokeFinder is in the order s0-s1, s2-s3 using the CaptureSight seeds. It is used specifically by PokeFinder.
- 32-bit output is in the order s0, s1, s2, s3, same as CaptureSight output.
- EncounterRNGBS > DisplaySeedMode: Changes the output to be one 128-bit value, two 64-bit values, or four 32-bit values.
Watches the global RNG state and reports it in the format specified. Notably, this can be connected at the same time as other bots so it's possible to scroll the Pokédex and have this bot halt the game once a target is hit.
- Displays total advances since the bot was started and number of advances since previous reported RNG state.
- Copies the initial RNG state to clipboard when the bot is started.
- Optionally pauses the game by clicking HOME if
MaxTotalAdvances
is exceeded. Make sure you account for any residual keypresses or advances and set a safe threshold to stop. Be aware that this does not work in the Grand Underground because advancements continue even when minimized.
If you want to pause the game's RNG advancements to look at the log, minimize it with the HOME button.
- EncounterRNGBS > DisplaySeedMode: Changes the output to be one 128-bit value, two 64-bit values, or four 32-bit values. Does not use the PokeFinder format.
- EncounterRNGBS > MonitorRefreshRate: Interval in milliseconds to check the global RNG state. This can be set as low as 0 for approximately 50 ms refresh rate.
- EncounterRNGBS > MaxTotalAdvances: Maximum total advances allowed before the bot clicks HOME to pause the game.
Flips rapidly between two pages in the Pokédex to advance the RNG state.
- The recommended use is to combine this with RNG Monitor bot so it can minimize the game when a certain number of advances have been reached. Increase the frequency of checking the RNG state for more precision.
- View an entry in your preferred Pokédex (National vs Sinnoh) before starting the bot. This forces the Pokédex to open on the correct page immediately.
- Start in the middle of the Pokédex pages. The more entries you have visible per flip, the better.
- Note that if RNG Monitor minimizes the game, there will still be residual scroll when you resume the game. Either stop earlier for safety or click B immediately on resuming.
- Resets the Pokédex after about 3 minutes due to degraded performance. For whatever reason, the BDSP Pokédex gets laggier after too much scrolling.
- Checks the RNG state periodically to ensure that it is advancing. If no change is detected, it assumes that RNG Monitor has minimized the game and exits the routine automatically.
- DexFlipMainLoopSleepTime: Changes sys-botbase's main loop sleep time from the default of 50.
- DexFlipStickSetTime: Changes the rate of the bot using SetStick to flip the dex.
The default values of 39 for DexFlipMainLoopSleepTime
and 40 for DexFlipStickSetTime
achieve an advancement rate of about 185k per minute for me. You can experiment with setting these values to try and optimize this further. Leave these values alone if you are unsure how it works.
Used for research. Prints the character's current zoneID continuously.