-
Notifications
You must be signed in to change notification settings - Fork 34
Config file
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.
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.
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
petalburg loop
This is a bit of a beta method which will heal at Petalburg Poke center when the lead pokemon is low health.
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.
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.
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.
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
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
- 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
log
- set true or false
Log .csv files in /stats/encounters/ folder
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
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.
To see the configuration for discord webhooks, check out the Wiki page on Discord Webhooks.
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
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.