Hidden Item RNG (CFW)

A guide for using SysBot.NET - Moarencounterbots by Lusamine to hunt overworld legendary birds in LGPE.
Introduction

Moarencounterbots is a branch of SysBot.NET that provides extra bot functionality in Switch Pokémon games. In Let's Go Pikachu/Eevee, we can use this program to RNG manipulate valuable items in Let's Go Pikachu & Eevee's Cerulean Cave and Celadon City Game Corner. his most useful application of this type of RNG is for farming Master Balls, PP Max & Bottle Caps.

Important - From here it is assumed that you are using a Custom Firmware (CFW) Switch console running Atmosphere. This program is not intended to be used on emulator and cannot be used on retail hardware.
Getting Started
You will need:
Installation Instructions
  • Download .NET 9.0 SDK and run the setup wizard until complete. This is a required program dependency.
  • Download SysBot.NET - Moarencounterbots and extract the contents of the download to a clean, empty folder inside a known location on your computer.
  • Download LINQPad and run through the setup wizard until complete, consider creating a desktop shortcut for easy access.
  • Download PKHeX Development Build, then extract PKHeX.Core.dll into a known location on your computer. This is a dependency for the item script.
  • Open the LGPE Hidden Floor Item Script in your browser, you do not need to do anything else with this yet.
  • Download the latest sys-botbase release and extract the atmosphere folder to the root of your Switch SD card.
  • Put the SD card back into the console, then reboot the console into your chosen CFW environment (SysCFW recommended).

A pre-compiled version of Moarencounterbots is provided in the download links above, and is considered fine for 99% of people. To use the latest commits of the program you will need to compile and configure it yourself using the guide directly below. Do not proceed until you have a functional build of Moarencounterbots, either through using the download link or compiling the application yourself.

Moarencounterbots build guide!

Configurations & Setup

Setup instructions for Moarencounterbots and LINQPad can be found here.

Before doing anything else, you will need to set up SysBot.NET, LINQPad (for using the script), and your save file. All three of these should be properly configured before starting.

Figure 1 - SysBot.NET Setup

item-1
SysBot Setup

Upon opening SysBot.exe for the first time it will default to function in Scarlet & Violet, this is indicated by the program header. To change the bot to LGPE mode, do the following:

  1. Launch and close SysBot.exe at least once to generate a file named config.json.
  2. Open config.json with your favourite text editor (e.g Notepad).
  3. Change the Mode value to 100 (100 represents LGPE).
  4. Launch the application, you should now see that the bot header has changed to support LGPE.

After you have successfully launched the bot in LGPE mode, you will need to toggle the settings for the bot you plan to use, here's how:

  1. In the Hub tab, open the EncounterRNGLGPE dropdown menu.
  2. Select Bit128 in the DisplaySeedMode dropdown menu.
  3. Set the MonitorRefreshRate to 0, this will be needed later.
  4. In the Bots tab, type the local IP address of the console.
  5. In the dropdown menu on the right, select EncBotRNGMonitorLGPE and add the bot.

At this point you should now see LGPE in the SysBot header and have the RNG monitor added to the list of currently active bots. If you need a visual example to follow, refer to Figure 1.


Figure 2 - Script Setup

item-2
LINQPad Script Setup

Upon launching LINQPad, you should see something similar to the above image. The links at the top of this page show where the raw script used for item RNG manipulation is located.

Initial Script Setup
  • Change the Language (found at the top of the window) to C# program, delete any existing code that appears from doing so.
  • Copy the LGPE Hidden Floor Item Calculator script directly into the main window, then press F4 to open the Query Properties subwindow.
  • In the Additional References tab, click the Add/Browse button and select PKHeX.Core.dll (downloaded earlier).
  • Open the Namespace Imports tab then type PKHeX.Core.
  • Click the OK button at the bottom left of the subwindow to confirm these changes.
  • Run the script, you should see that an output has been produced at the bottom of the main window if setup was done correctly.

Ensure that the script is being ran as a C# Program, this is visible in the top bar of the main window. Use Figure 2 as a reference point if you are struggling with leveraging PKHeX.Core.dll.


Figure 3 - Game Setup

item-3
Game Setup

The item given from interacting with a hidden item spot is determined on the frame it was picked up. For this reason your item needs to be spawned and able to be picked up before doing anything else.

In this example we are searching for a Master Ball in Cerulean Cave, in Figure 3 the player is stood next to a Pokeball Spawner in Cerulean Cave. We have confirmed that an item is present, then reset the game to respawn it.

  • A list of table item rates and spots for item spawners can be found here
Respawn Mechanics

The conditions to respawn collected items is different depending on location. For Cerulean Cave, items have a chance of spawning every time the player walks 256 steps. In the game corner, the items are respawned each time a day has passed.

To trick the game into believing that a day has passed naturally (which will respawn the items in the Game Corner immediately if yours are despawned), you will need to follow these steps:

  1. Open the pause menu and click Communicate.
  2. Select the Play with others option.
  3. Select Nearby Player, then Link Trade.
  4. Enter any link code, then search for a trade.
  5. Press the home button and navigate to System Settings.
  6. Change the system date forward by one day, this will respawn the items.

If you are planning to manipulate items in Cerulean Cave, carry plenty of repels to avoid unwanted advancements and increase frame advancement stability.


Important - Ensure that all of the setup instructions have been closely followed before continuing, from here it is assumed that SysBot.NET, LINQPad, and the save file have been properly configured.

Getting To Work

Instructions for hitting a target frame can be found here.

First, decide which item you plan to manipulate and navigate to the corresponding location. Full item tables can be found inside the LINQPad script. After finding the correct location you will need to set the appropriate search filters.

Figure 4 - Script Filters

item-4
Script Filters

By default the script is configured to search for Master Balls within 2000 advances, using the Cerulean Cave Pokeball table. If you are seeking a different item these filters can be adjusted accordingly.

  • To modify the table, change line 16 to match the table you wish to use, possible table selections are written directly above line 16.
  • To modify the selected item, change line 41 to match the item you wish to filter for, the entered name must be exact.
  • To adjust the amount of frames the script will search through, modify the number in line 20, it is not recommended to increase this number.

Examples of how to change each of the search filters can be found in Figure 4.


After setting the script properly, applying filters and standing in the correct in-game location, you can begin searching for desirable target frames.

Figure 5 - Searching For A Target

item-5
Searching For a Target

Your current seed can be monitored at any point using the EncBotRNGMonitorLGPE routine in SysBot.NET, if this guide was followed properly, you should already have the bot in the active bot.

Using SysBot.NET
  • Stand in the overworld in-game, then click the Start All button on SysBot.NET to run the EncBotRNGMonitorLGPE routine.
  • A seed will be produced inside the Logs tab, copy it if necessary.
  • Paste the seed into line 4, inside the "", then press the play button at the top of the window.
  • Results should now appear at the bottom of the main window, restart the game and repeat if the result is not desirable.

It is recommended to search for a cluster where possible, a cluster is multiple frames in a row that produce the same end result. This provides more opportunities to spawn the correct item.


Figure 6 - Target Found!

item-6

A target has been found! A Master Ball on advances 59-60, these are the exact advances that we will aim to interact with a spawner that contains our desired item on.

The following actions are considered to be the best methods to advance the RNG state:

Advancement Method Description Of Method
Follow Pokemon Interaction Using the Pokemon follow feature to either ride a Pokemon or have it trail behind you, then interacting with it.
Spawning Wild Pokemon Spawning wild Pokemon in the overworld will advance the RNG state a certain amount depending on the Pokemon spawned.
Pikachu/Eevee Interaction Opening the "Play with Pikachu/Eevee" menu will advance the RNG state in small increments, useful for the last few advances.

Monitor the Logs tab of SysBot.NET until you reach your target frame. It is recommended to remain close to the area that contains your desired item where possible.

If you are manipulating items in Cerulean Cave, ensure that a repel is active when doing the last ~50 advancements to avoid overshooting your target frame, as advances are consumed every time a wild Pokemon spawns.

Figure 7 - Target Frame Hit!

item-7

According to the search results, a Master Ball will be produced after interacting with the item spot on frame 59. The SysBot logs indicate that 59 advancements have occured since we began monitoring, so it is now time to interact with the hidden item spot to claim our item.

Figure 8 - Result Found!

item-8

A Master Ball was produced as expected, that's all there is to RNG manipulating valuable items in LGPE!