Skip to main content

A python interface for training Reinforcement Learning bots to battle on pokemon showdown.

Project description

The pokemon showdown Python environment

PyPI version fury.io PyPI pyversions License: MIT Documentation Status codecov

A Python interface to create battling pokemon agents. poke-env offers an easy-to-use interface for creating rule-based or training Reinforcement Learning bots to battle on pokemon showdown.

A simple agent in action

Getting started

Agents are instance of python classes inheriting from Player. Here is what your first agent could look like:

class YourFirstAgent(Player):
    def choose_move(self, battle):
        for move in battle.available_moves:
            if move.base_power > 90:
                # A powerful move! Let's use it
                return self.create_order(move)

        # No available move? Let's switch then!
        for switch in battle.available_switches:
            if switch.current_hp_fraction > battle.active_pokemon.current_hp_fraction:
                # This other pokemon has more HP left... Let's switch it in?
                return self.create_order(switch)

        # Not sure what to do?
        return self.choose_random_move(battle)

To get started, take a look at our documentation!

Documentation and examples

Documentation, detailed examples and starting code can be found on readthedocs.

Installation

This project requires python >= 3.9 and a Pokemon Showdown server.

pip install poke-env

You can use smogon's server to try out your agents against humans, but having a development server is strongly recommended. In particular, it is recommended to use the --no-security flag to run a local server with most rate limiting and throttling turned off. Please refer to the docs for detailed setup instructions.

git clone https://github.com/smogon/pokemon-showdown.git
cd pokemon-showdown
npm install
cp config/config-example.js config/config.js
node pokemon-showdown start --no-security

Development version

You can also clone the latest master version with:

git clone https://github.com/hsahovic/poke-env.git

Dependencies and development dependencies can then be installed with:

pip install .[dev]

Acknowledgements

This project is a follow-up of a group project from an artificial intelligence class at Ecole Polytechnique.

You can find the original repository here. It is partially inspired by the showdown-battle-bot project. Of course, none of these would have been possible without Pokemon Showdown.

Team data comes from Smogon forums' RMT section.

Data

Data files are adapted version of the js data files of Pokemon Showdown.

License

License: MIT

Citing poke-env

@misc{poke_env,
    author       = {Haris Sahovic},
    title        = {Poke-env: pokemon AI in python},
    url          = {https://github.com/hsahovic/poke-env}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

poke_env-0.11.0.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

poke_env-0.11.0-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

Details for the file poke_env-0.11.0.tar.gz.

File metadata

  • Download URL: poke_env-0.11.0.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for poke_env-0.11.0.tar.gz
Algorithm Hash digest
SHA256 19d514ec28c5391facc0cc5964c2a7a530b4846ddac8df2cae34d21b9bd53bf3
MD5 623966c0cde2f809add8c35bf785cae0
BLAKE2b-256 c2898d5e191966216ac8d52eed7601929b2674cd7c84e3f98bf8851e43818d50

See more details on using hashes here.

File details

Details for the file poke_env-0.11.0-py3-none-any.whl.

File metadata

  • Download URL: poke_env-0.11.0-py3-none-any.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for poke_env-0.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2915d4777cb0bd1aa76416982db48cb55e0dda1ab862f3b1eb506ab0d639272d
MD5 87a5def6cca8c4b9a9a4799cebfab0e9
BLAKE2b-256 3367b55470ce7b91bff23c7b17c7f0ede15e8b7e87ec7361e15ced2bf1c64cd8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page