Skip to content
This repository has been archived by the owner on Nov 29, 2023. It is now read-only.

Config file

pekempy edited this page Jul 31, 2023 · 20 revisions

In the pokebot-bizhawk folder, you will find a config.yml file, open and edit this file to change the behaviour of the bot. To edit the file, using an editor which includes code styling such as Notepad++. This makes editing the config much easier.

bot_mode

Set bot_mode to any of the following strings, make sure to read exactly where you need to place your trainer for each mode.

NOTE: Emerald's RNG seed for generating random Pokemon is always the same. For encounters that use soft resets, the bot will attempt to avoid hitting duplicate frames to lessen the odds of getting identical Pokemon. This choice causes reset encounters on the same save file to take progressively longer, so it's recommended that for the Starters bot mode, you should occasionally start a new save file to reset this delay.

Random Encounters

Spin (default)

spin
Start the bot anywhere, and it will mash random directions to spin on the same tile (useful for Safari Zone and repel tricking as it doesn't use steps!)

'coords' and 'bonk'

coords - Run between 2 different x,y coords.
Set pos1 and pos2 in the coords field below bot_mode to specify the two positions it should run between. (You can use view_coords.lua Bizhawk script in pokebot-bizhawk to display your current coords on-screen).

bonk
The bot will run back and forth until it bonks a wall, either Up/Down or Left/Right specified by either Horizontal or Vertical in the bonk_direction option.

Bunny hop

bunny hop
Start the bot while on the acro bike - player will bunny hop on the spot (useful for saving steps in Safari Zone).

Sweet Scent

sweet scent
Uses sweet scent to trigger an encounter if the first Pokemon in your party knows the move

NOTE: This mode has been untested for some time. It may currently be broken.

Fishing

fishing
Must have a fishing rod registered, start the bot with the trainer facing water.

Petalburg Loop

TutPetalburgLoop

petalburg loop
This is a bit of a beta method which will heal at Petalburg Poke center when the lead pokemon is low health.

Gift Pokemon

Starters

starters
Choose a starter in the config file, and place the trainer facing Birch's bag and SAVE before starting the bot. The script will pick a starter and soft reset until a shiny is received.

Johto Starters

johto starters
Choose a johto_starter in the config file, then place the trainer facing the desired Pokeball in Birch's lab and SAVE before starting the bot. The script will soft reset until a shiny starter is received.

Castform

castform
Castform soft resets. Place the trainer facing the scientist in the Weather Institute and SAVE before starting the bot. The script will stop once a shiny Castform is received.

Important note: If you have any space in your party or your PC, the Castform will be given to you instantly after the battle.
You must fill your PC/Party with junk Pokemon using PKHex, battle, then save afterwards. Release/Delete one Pokemon from your party, and then you can run the script. If the bot states that you need to face the scientist, please report the coordinates and screenshot in the discord.

NOTE: This mode has been untested for some time. It may currently be broken.

Fossil

fossil
Choose a fossil in the config file, then place the trainer facing the Fossil Scientist in Devon after handing over the fossil and re-entering the room. Make sure to SAVE before starting the bot. The script will stop once a shiny fossil is received.

Static Pokemon

Groudon, Kyogre and Rayquaza

groudon
Start the bot with the trainer on the platform in front of Groudon, it will run in and out of the room and kill the script once a shiny is spotted.


kyogre
Start the bot with the trainer on the platform in front of Kyogre, it will run in and out of the room and kill the script once a shiny is spotted.


rayquaza
Start the bot with the trainer facing Rayquaza, it will run in and out of the room and kill the script once a shiny is spotted.

Southern Island

southern island
Start the bot with the trainer facing the sphere on Southern Island.

Regis

regis
Start the bot facing the target Regi in Ancient Tomb, Island Cave or Desert Ruins after saving. The bot will continually battle, flee, and re-enter the room until a shiny is encountered.

Mew

mew
Start the bot on Faraway Island, in front of the entrance to the grassy area with Mew.

'Deoxys resets' and 'Deoxys runaways'

For both bot modes, start the bot in front of the triangle on Birth Island. If the puzzle is solved already and the last save is on the tile in front of the red triangle in its final position, set deoxys_puzzle_solved to true in the config file. In deoxys resets, the bot will attempt to complete the puzzle and save before the encounter before starting resets.

deoxys resets
The bot will encounter Deoxys and soft reset if not shiny.

deoxys runaways
The bot will attempt to complete the triangle puzzle and encounter Deoxys, flee, and re-enter Birth Island. This mode uses many precise inputs, so it's recommended that you don't use it while playing on increased speeds. If the bot makes a mistake during the puzzle, it will soft reset.

Misc

Buy Premier Balls

Buy Premier Balls
Start the bot in any PokeMart UI with the cursor over regular Poke Balls. The bot will buy Poke Balls in quantities of 10 until the script is stopped, or there is no money left to buy batches of 10.

Wild Battles

auto_catch - set true or false

If true, the bot will auto catch shiny Pokémon when encountered.
If it's false it will pause the bot until you manually intervene and catch.

use_spore - set true or false
The bot will attempt to use the move Spore before throwing Pokeballs. If your lead Pokemon doesn't have the move, this option will do nothing.

catch_shinies - set true or false
If set to true, the bot will catch shiny Pokemon.

battle - set true or false
If set to true, the bot will attempt to KO any Pokemon that it chooses not to catch by the rules set above. This must be true if using pickup otherwise the ability will not activate.

auto_stop - set true or false
If set to true, the bot will stop when you run out of Pokeballs.

pokeball_priority - list

The order in which Pokeballs should be used, starting by highest priority. The bot will attempt to use the first item in the list, trying the next item down until it eventually finds a ball it can use or runs out of choices. Possible options are:

  • poke_ball
  • great_ball
  • ultra_ball
  • premier_ball
  • dive_ball
  • luxury_ball
  • nest_ball
  • net_ball
  • repeat_ball
  • safari_ball
  • timer_ball
  • master_ball

pokeball_override - dictionary

Per-species preferences for Pokeballs that the bot should use. Follows the same rules as pokeball_override, but takes priority over those rules. Create a dictionary in the format of the example below to add new rules to this option.

pokeball_override:
  Abra:
  - ultra_ball
  - great_ball
  Marill:
  - net_ball

Auto-Saving

save_game_after_catch - set true or false
If set to true, after catching a Pokemon either through the custom catch config or shinies, it will save the game and also use Bizhawk's "Flush Save RAM" to save it to disk. This is recommended to be left on True

autosave_encounters - number
By default this is 1000 - The bot will automatically save and flush save RAM every x encounters. This prevents loss of Pokemon levels / pickup items etc. due to unexpected crashes.

backup_stats - number
By default this is 5000 - The bot will backup your /stats/ folder into /backups/ every x encounters. Regularly delete old backups if file sizes become an issue, but be sure to keep recent ones. Totals.json can become corrupted due to power outages.

Pickup

pickup - set true or false

If set to true, the bot will assume it has Pokemon with the ability Pickup in the party. At the end of each battle, it will check the party data to see if there are any Pickup Pokemon with held items it can collect and place in the Bag.

pickup_threshold - between 1 and 6

The number of Pickup Pokemon that should have held items before it will collect them from the party menu after a battle.

cycle_lead_pokemon - set true or false

Whether the bot should switch the lead Pokemon with another party member once it either faints or depletes all of its PP. This will not trigger if using petalburg loop bot mode

Logging

log - set true or false

Log .csv files in /stats/encounters/ folder

Preferences

User interface options:

ui:
- enable: true

set true or false

This will prevent the dashboard launching if set to false, however it will still be accessible at the server details set below

- width: 1280 
- height: 720

set the default dimensions of the UI here - it can be resized once launched

Web server options (this must be enabled for the UI to work):

If you opt to disable the UI in the config above, you can still run the web server and access the dashboard in a browser of your choice at http://ip:port/dashboard - This is recommended for multi-instance setups so you can use a tabbed browser to host multiple dashboards.

server:
  - enable: true
  - ip: 127.0.0.1
  - port: 8888

enable can be set to true or *false
ip can be changed to an IP to listen on - only change this if you know what you're doing
port the port to listen on - if you're running multiple instances, each instances needs its own port for the dashboard to function

bot_instance_id - string

Use this when running multiple instances of the bot.
Edit the pokebot.lua file and set bot_instance_id (at the top of the file) to the same value in config.yml, use a unique string per bot instance.
You will need to a separate pokebot-bizhawk folder per bot instance, and stats will be separately tracked in their respective folders.

For example, you can have 5 instances named:

  • my_bot_1
  • my_bot_2
  • my_bot_3
  • my_bot_4
  • my_bot_5

banned_moves - list

The capitalized list of all moves that the bot should avoid using when battling wild Pokemon. The default list contains a list of moves that either waste a number of turns, deal an inconsistent amount of damage, or prematurely end the battle.

Discord

To see the configuration for discord webhooks, check out the Wiki page on Discord Webhooks.

Other

mem_hacks - set true or false
mem_hacks performs "cheaty" actions such as knowing if an egg is shiny before hatching, instantly knowing roaming Pokemon routes, instantly locating Feebas tiles etc. For realistic hunts, ensure this is false.

shiny_delay: number
Delays catching a shiny Pokemon by n seconds when encountered

OBS

Note: When enabled, the bot will emulate the hotkey keystrokes - so only use this on dedicated streaming PCs or you may encounter unexpected inputs.

obs: 
    enable_screenshot: false

enable_screenshot set to true or false
This will take a stream screenshot after the shiny_delay to allow for overlays to update.

    enable_replay_buffer: false

enable_replay_buffer set to true or false
Saves the stream replay buffer after replay_buffer_delay

    hotkey_screenshot: ["", ""]

hotkey_screenshot is an array for the keys to be pressed to capture a screenshot (png format expected if posting to Discord
e.g. hotkey_screenshot: ["ctrl", "f11"]

    hotkey_replay_buffer: ["", ""]

hotkey_replay_buffer is an array for the keys to be pressed to capture the replay buffer of the stream
e.g. hotkey_replay_buffer: ["ctrl", "f12"]

    replay_buffer_delay: number

replay_buffer_delay is how many seconds to wait after a shiny is logged before saving the replay buffer.
This will run in a separate thread and will not pause the bot itself.

    replay_dir: "{path}"

replay_dir sets the directory the replay buffers will be saved to - set in OBS.
This is used to post the stream screenshot to Discord

    webhook_url: 

As with Discord Webhooks this instructs the OBS section where to send screenshots.