Skip to content

Repository files navigation

The OutN Project

current release : v9.1 stable

An actively developed Self-hostable FOSS pokemon recognition and assistant bot for discord and made more specifically for the discord pokemon game "Poketwo".

It can identify Pokémon from Pokétwo spawns, ping a role for rare and regional spawns and pin them, other many features!and it is fully automated and updated.

Made with ❤️ in Python

Skip to Usage/installation

Table of Contents

Features

  • ⭐ can be used to make CUSTOM bots for your server
  • ⭐ completely FOSS i.e. Free and Open Source
  • ⭐ 'Ai' recognition
  • ⭐ built-in Starboard
  • Rare and regional ping
  • catch logging
  • built-in hint solver
  • both automatic & manual identification support
  • spawn logging
  • Pretty embeds
  • Self-hostable
  • fully customizable
  • config based - no coding skills required
  • easy to use/Beginner-Friendly
  • ezy catch - just copy and paste
  • Automatic
  • Light and not system heavy
  • Cross platform

Roadmap

  • Ai identification <- v1.0
  • Rare ping <- v2.0
    • mythic
    • legendary
    • ultra beast
    • regional
  • Embeds <- v3.0
  • Hint solver <- v4.0
  • StarBoard <- v5.0
  • catch logs <- v6.0
  • spawn logs <- v7.0
  • commands <- v8.0
    • help command
    • identify command
  • correct tier detection <- v9
    • exact-match tier lists instead of substring matching
    • tier lists checked against the model's own class names
    • recognition moved off the event loop so spawns stop freezing the bot
  • better setup and fewer surprises <- v9.1
    • config checked at startup, with a report
    • one embed per hint instead of one per match
    • star reaction on the spawn
    • log file
  • per-server config
    • right now the starboard channel and ping roles are global, so if the bot is in two servers, spawns from one get starred and pinged in the other
    • settings should be stored per server instead
  • editable config
    • fixing one wrong ID currently means deleting config.ini and re-answering every question, token included
    • change a single setting without redoing setup
  • say when it is unsure
    • use the recognition confidence, so a low-confidence guess reads as "probably X" instead of a plain statement
  • read settings from environment variables too
    • keeps config.ini as the default, but makes docker and hosted deploys possible
  • more..

Usage/installation

download the OutN bot by

  1. make a discord bot - guide / official page
  2. star this repo 😉 plz
  3. follow any of the below methods for usage

automatic

extract the folder just run 'run.bat'

it will install dependencies and run the program by itself

for further usage i.e. not the first run and the dependencies are all already installed

you can just run 'just_run.bat' which will only run main.py and nothing else

manual

  • requires

extract the folder and open a command prompt window in it

  1. install dependencies using:
pip install -r requirements.txt
  1. then run the program using:
python main.py

the program will ask for your bot token, role ids (for rare and regional ping) and channel id (for starboard, catch and spawn logger) on initialisation and then will save it to 'config.ini' so that it does not ask you every time it runs.

Note

the token is only saved locally and is not sent anywhere.

Caution

make sure not to upload 'config.ini' anywhere as it contains your bot token. the repo's '.gitignore' already excludes it, so it will not be committed by accident.

Note

when you create the bot, enable the Message Content intent in the Discord developer portal. that is the only privileged intent OutN needs.

Development

run the self-check before opening a pull request:

python test_outn.py

it needs no third-party packages and takes about a second. it verifies that every name in 'data/pokes/*' is a real class the model can actually predict, that tier lookup is correct, and that the hint solver works. if you edit any file in 'data/pokes/', this is what catches a typo before it silently costs someone a rare ping.

Changelog

CHANGELOG.md

FAQ

Q) I got this error ModuleNotFoundError: No module named '<module name>' what do i do?

A) do pip install <modulename>

rest -> you tell me 😆

Feedback and Support

All and every kind of feedback is welocome. And any constructive criticism is appreciated.

If you have any kind of feedback or need help feel free to contact me:

Contributing

Contributions are always welcome!

currently you can:

  • contribute by fixing any bugs in the code you find
  • suggesting features

Code Of Conduct

Please Adhere to the Code of Conduct

License

No License

In this case

  • you are free to use and share the software as long as you give credit to the developer a.k.a myself which is only fair.
  • you have no permission from the creator of the software to modify, or share the software without credits or without permission. Although a code host such as GitHub may allow you to view and fork the code, this does not imply that you are permitted to modify, or share the software for any purpose or without permission.

Star History

Star History Chart

Authors

Releases

Used by

Contributors

Languages