GamePress

Comprehensive Guide on GoBattleSim

Submit Feedback or Error
Article by bioweapon

Introduction

GoBattleSim is a next-generation Pokemon Go Battle Simulator. It natively supports multiplayer PvE and PvP battles. You can add up to 20 players, each with individual lineups. GoBattleSim is highly customizable. You can configure battle settings, create Move and Pokemon, and test them out as you like. GoBattleSim also has a powerful batch input scheme, helpful for running multiple sims with combinations of parameters.

This guide will walk through some key functionalities of GoBattleSim.

Basic

Create Pokemon Lineup

Player:

  • Attacker should choose Primary Team for Team

  • The Clones field multiply the raw damage of the player by that value, as an alternative to simulate duo/trio

Party:

  • If Max Revive is checked, the party will be revived and rejoined after all Pokemon faint from battle

  • Enter Delay controls the delay in milliseconds before each entering battle, including the initial entering

Pokemon:

  • The Copies field determines how many same Pokemon to be created for the party

  • Selecting "Basic" for Role will let GBS derive level and IVs from CP

  • You may copy and paste the specifications of a Pokemon by clicking the buttons on the upper right corner

Other tips:

  • You may adjust the Pokemon/Party/Player order by dragging the section
General Settings
  • Timelimit controls the time limit of a battle

    • For PvE (raid, gym) battles, the time limit is further subtracted by arenaEntryLagMs and arenaEarlyTerminationMs (configurable via Customize - Battle Settings)

    • For PvP battles, the time limit is divided by 500 to get the turn limit

  • BackgroundDPS applies additional damage to Pokemon from Opposite Team by that value at the end of each second

  • Repeat controls how many random simulations should be performed for a specific battle input (in contrast to batch input)

  • Aggregation controls how to aggregate the multiple sims for a specific battle input

    • If set to Enumerate, each individual sim will be listed out (no aggregation)

    • If set to Average, arithmetic averages of selected metrics will be taken

Simulation Result Interpretation

In the summary table:

  • Outcome: Win or Lose, from the perspective of the Primary Team

    • If it is an averaged sim, it will be the proportion of winning (such as 70%)

  • Duration: The duration of the battle in seconds, excluding arenaEntryLagMs and arenaEarlyTerminationMs

  • TDO%: The Opposite team's HP lost sum in the percentage of the max HP sum

  • DPS: The aggregated DPS of all players from the Primary Team

  • #Deaths

    • For PvE battle, it's the sum of times of deaths of all Pokemon from the Primary team

    • For PvP battle, it's the sum of times of deaths of all Pokemon

If you want to examine a particular sim in more detail, click the info icon. Each Pokemon’s statistics will be presented:

  • HP: The HP left of the Pokemon when it exits the battle

  • Energy: The Energy left of the Pokemon when it exits the battle

  • TDO: The Total Damage Output of the Pokemon

  • Duration: The cumulative time this Pokemon battled in the arena

  • DPS: Damage Per Second

You may click the Battle Log tab to check the battle log.

  • There won’t be a battle log if it is an aggregated sim

Advance

PokeQuery

PokeQuery is used to filter Pokemon, Moves, and other Pokemon Go objects. It is a generalization of the Pokemon Go in-app search bar feature.

For full features of PokeQuery, refer to this documentation.

Batch Input Scheme

Batch battle input consists of batching queries in some of the following Pokemon input fields:

  • Name
  • Fast Move
  • Charged Move
  • Charged Move 2
  • Level
  • Atk IV
  • Def IV
  • HP IV

A batching query takes the following format:

{Aggregation Indicator}{PokeQuery}

Aggregation Indicator can be:

Aggregation IndicatorDescription
*Enumerate
?Average

The ? groups the simulation results by that input field and take the arithmetic average for selected output metrics.

Some examples:

FieldBatching QueryDescription
Name*$Every Pokemon in the player's PokeBox
Name*rating4- & !$Every generic Pokemon (not in the user's PokeBox) whose GamePress rating is at least 4
Fast Move/Charged Move?currentAverage all the current moves of the Pokemon

For any input field, the application will first try to find a direct match by name. If no direct match is found, then it’ll proceed to treat the input as batching query. If no Aggregation Indicator is given, * will be chosen as default.

Multiple batching queries parsed results are combined by cartesian product.

Credits

Thanks for using GoBattleSim, a simulator developed by u/biowpn.

Inspiration by u/doublefelix921's BattleSim.

Special thanks to u/Poksreddit and RyanSwag whose suggestions shaped what GoBattleSim looks like now.

Enjoyed the article?
Consider supporting GamePress and the author of this article by joining GamePress Boost!
Join!

About the Author(s)