{"id":50451372,"url":"https://github.com/apozinn/gryphon","last_synced_at":"2026-06-27T05:30:46.906Z","repository":{"id":155534146,"uuid":"583049395","full_name":"apozinn/gryphon","owner":"apozinn","description":"Gryphon is an Discord bot that turns your server into an arena of rooster champions!  Inspired by Pokémon, it allows users to collect, train, and battle roosters with unique abilities and rarities.","archived":false,"fork":false,"pushed_at":"2026-03-24T00:48:08.000Z","size":313,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-06-01T00:19:54.365Z","etag":null,"topics":["cpp","discord","dpp","minigame","rpg-game"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apozinn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-12-28T16:01:09.000Z","updated_at":"2026-03-24T00:48:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"fef286af-c3d8-4729-9863-3bb713e8bb97","html_url":"https://github.com/apozinn/gryphon","commit_stats":null,"previous_names":["apozinn/axion"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/apozinn/gryphon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apozinn%2Fgryphon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apozinn%2Fgryphon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apozinn%2Fgryphon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apozinn%2Fgryphon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apozinn","download_url":"https://codeload.github.com/apozinn/gryphon/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apozinn%2Fgryphon/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34843146,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-27T02:00:06.362Z","response_time":126,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","discord","dpp","minigame","rpg-game"],"created_at":"2026-06-01T00:03:14.610Z","updated_at":"2026-06-27T05:30:46.900Z","avatar_url":"https://github.com/apozinn.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n```\n ██████╗ ██████╗ ██╗   ██╗██████╗ ██╗  ██╗ ██████╗ ███╗   ██╗\n██╔════╝ ██╔══██╗╚██╗ ██╔╝██╔══██╗██║  ██║██╔═══██╗████╗  ██║\n██║  ███╗██████╔╝ ╚████╔╝ ██████╔╝███████║██║   ██║██╔██╗ ██║\n██║   ██║██╔══██╗  ╚██╔╝  ██╔═══╝ ██╔══██║██║   ██║██║╚██╗██║\n╚██████╔╝██║  ██║   ██║   ██║     ██║  ██║╚██████╔╝██║ ╚████║\n ╚═════╝ ╚═╝  ╚═╝   ╚═╝   ╚═╝     ╚═╝  ╚═╝ ╚═════╝ ╚═╝  ╚═══╝\n```\n\n**A Discord battle arena where roosters are the champions.**\n\n_Collect. Train. Fight. Dominate._\n\n---\n\n[![License](https://img.shields.io/badge/license-LGPLv3-c0392b?style=flat-square)](https://www.gnu.org/licenses/lgpl-3.0.html)\n[![C++](https://img.shields.io/badge/C%2B%2B-17-00599C?style=flat-square\u0026logo=cplusplus)](https://en.cppreference.com/w/cpp/17)\n[![CMake](https://img.shields.io/badge/CMake-3.16%2B-064F8C?style=flat-square\u0026logo=cmake)](https://cmake.org/)\n[![DPP](https://img.shields.io/badge/D%2B%2B-10.x-5865F2?style=flat-square\u0026logo=discord\u0026logoColor=white)](https://dpp.dev/)\n[![MongoDB](https://img.shields.io/badge/MongoDB-cxx--driver-00ED64?style=flat-square\u0026logo=mongodb\u0026logoColor=white)](https://www.mongodb.com/)\n\n\u003c/div\u003e\n\n---\n\n## What is Gryphon?\n\nGryphon is an open-source **Discord bot template** built around a Pokémon-inspired rooster battle system. Players collect roosters with unique classes, rarities, and skill sets — then take them into turn-based combat against other players or AI opponents through Discord's native button interface.\n\nIt is designed as a **production-grade starting point** for developers who want to ship a complex RPG-style minigame on Discord without building the architecture from scratch. The codebase is written in **modern C++17**, uses **D++ (DPP)** for Discord API interaction, and **MongoDB** for persistent game data.\n\n\u003e Self-hosting required. Gryphon is a template, not a hosted service.\n\n---\n\n## Core Mechanics\n\n```\n  PLAYER A                                   PLAYER B\n  ────────                                   ────────\n  Rooster: [Titan]          vs.              Rooster: [Ember]\n  Class:    Tank                             Class:    Damage\n  HP:       340 / 340                        HP:       210 / 210\n\n  [ Attack ]  [ Defend ]  [ Heal ]  [ Skill ]  [ Surrender ]\n```\n\nEvery battle is driven entirely through Discord button interactions — no commands mid-fight. Roosters have persistent stats, XP progression, and class-based ability pools.\n\n| System             | Description                                                                    |\n| :----------------- | :----------------------------------------------------------------------------- |\n| Turn-based combat  | Attack, defend, heal, use skills, or surrender — each turn via Discord buttons |\n| Rooster collection | Hunt for wild roosters with random stats, rarity tiers, and classes            |\n| Classes            | Tank, Healer, and Damage archetypes, each with distinct ability sets           |\n| Progression        | XP gain, training, and stat growth between battles                             |\n| Economy            | In-game shop, inventory, and currency system                                   |\n| Tournaments        | Server-wide championships initiated by the server owner                        |\n| League mode        | Progressive PvE campaign against scaling AI opponents                          |\n\n---\n\n## Command Reference\n\n### Profile \u0026 Utility\n\n| Command        | Description                           |\n| :------------- | :------------------------------------ |\n| `/help`        | List all commands and usage           |\n| `/stats`       | Detailed stats of your active rooster |\n| `/coop`        | View your full rooster collection     |\n| `/select \u003cid\u003e` | Set a rooster as your active fighter  |\n| `/history`     | Log of recent battles and actions     |\n\n### Progression\n\n| Command  | Description                                     |\n| :------- | :---------------------------------------------- |\n| `/hunt`  | Search for a new wild rooster to capture        |\n| `/train` | Spend resources to level up your active rooster |\n| `/moves` | View available skills for your active rooster   |\n\n### Combat \u0026 Economy\n\n| Command         | Description                          |\n| :-------------- | :----------------------------------- |\n| `/fight \u003cuser\u003e` | Challenge another player to a battle |\n| `/heal`         | Restore your rooster's health        |\n| `/shop`         | Open the in-game market              |\n| `/inventory`    | View owned items and resources       |\n\n### Championship\n\n| Command       | Description                                    |\n| :------------ | :--------------------------------------------- |\n| `/league`     | Start a PvE progressive battle campaign        |\n| `/champ open` | _(Server Owner)_ Open a new server tournament  |\n| `/champ join` | Register your rooster in the active tournament |\n\n---\n\n## Tech Stack\n\n| Layer         | Technology                                                                        |\n| :------------ | :-------------------------------------------------------------------------------- |\n| Language      | C++17                                                                             |\n| Discord API   | [D++ (DPP)](https://github.com/brainboxdotcc/DPP) v10                             |\n| Database      | MongoDB via [mongo-cxx-driver](https://github.com/mongodb/mongo-cxx-driver) r3.10 |\n| Build System  | CMake 3.16+ with FetchContent                                                     |\n| Serialization | [fmt](https://github.com/fmtlib/fmt) 10.x                                         |\n\nAll dependencies except OpenSSL are fetched and compiled automatically by CMake — no package managers required.\n\n---\n\n## Building from Source\n\n### Prerequisites\n\nThe only dependency you need to install manually is **OpenSSL**. Everything else (DPP, mongo-cxx-driver, mongo-c-driver, zlib, opus, fmt) is handled automatically by CMake's `FetchContent`.\n\n\u003e CMake \u003e= 3.16 and a C++17-capable compiler are also required.\n\n---\n\n#### Linux\n\n**Arch / Manjaro**\n\n```bash\nsudo pacman -S openssl cmake gcc\n```\n\n**Ubuntu / Debian**\n\n```bash\nsudo apt install libssl-dev cmake build-essential\n```\n\n**Fedora / RHEL**\n\n```bash\nsudo dnf install openssl-devel cmake gcc-c++\n```\n\n**Alpine**\n\n```bash\nsudo apk add openssl-dev cmake g++ make\n```\n\nOptional but recommended — accelerates builds significantly:\n\n```bash\n# Arch\nsudo pacman -S ccache mold\n\n# Ubuntu/Debian\nsudo apt install ccache mold\n```\n\n---\n\n#### macOS\n\n```bash\nbrew install openssl cmake\n```\n\nFor a faster linker (optional):\n\n```bash\nbrew install llvm ccache\n```\n\n---\n\n#### Windows\n\nInstall [Visual Studio 2022](https://visualstudio.microsoft.com/) with the **\"Desktop development with C++\"** workload, which includes CMake and the MSVC compiler.\n\nThen install OpenSSL via [winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/) or the official installer:\n\n```powershell\nwinget install ShiningLight.OpenSSL\n```\n\nOr via [vcpkg](https://github.com/microsoft/vcpkg):\n\n```powershell\nvcpkg install openssl:x64-windows\n```\n\n---\n\n### Clone and Build\n\n```bash\ngit clone https://github.com/apozinn/gryphon.git\ncd gryphon\n```\n\n**Linux / macOS**\n\n```bash\ncmake -B build -DCMAKE_BUILD_TYPE=Release\ncmake --build build -j$(nproc)\n```\n\n**Windows (PowerShell)**\n\n```powershell\ncmake -B build -DCMAKE_BUILD_TYPE=Release\ncmake --build build --config Release -j $env:NUMBER_OF_PROCESSORS\n```\n\n\u003e The first build will take 10–20 minutes as it compiles DPP, mongo-cxx-driver, and their dependencies from source. Subsequent builds with ccache are near-instant.\n\nThe compiled binary will be at:\n\n- Linux/macOS: `build/Gryphon`\n- Windows: `build\\Release\\Gryphon.exe`\n\n---\n\n## Configuration\n\nBefore running, copy the example config and fill in your credentials:\n\n```bash\ncp config-example.json config.json\n```\n\n```json\n{\n  \"token\": \"YOUR_DISCORD_BOT_TOKEN\",\n  \"mongo_db_uri\": \"YOUR_MONGODB_CONNECTION_STRING\",\n  \"language\": \"en_US\"\n}\n```\n\n| Field          | Where to get it                                                                                            |\n| :------------- | :--------------------------------------------------------------------------------------------------------- |\n| `token`        | [Discord Developer Portal](https://discord.com/developers/applications) — create an application, add a bot |\n| `mongo_db_uri` | [MongoDB Atlas](https://www.mongodb.com/atlas) (free tier available) or a local MongoDB instance           |\n| `language`     | Locale string, e.g. `en_US`, `pt_BR`                                                                       |\n\n**Never commit `config.json` to version control. It is already in `.gitignore`.**\n\n---\n\n## Running\n\n**Linux / macOS**\n\n```bash\n./build/Gryphon\n```\n\n**Windows**\n\n```powershell\n.\\build\\Release\\Gryphon.exe\n```\n\nFor persistent deployment on Linux, consider running under `systemd` or `screen`:\n\n```bash\nscreen -S gryphon ./build/Gryphon\n```\n\n---\n\n## Project Structure\n\n```\ngryphon/\n├── src/                  # Source files (.cpp)\n├── include/              # Header files (.hpp)\n├── config-example.json   # Configuration template\n├── CMakeLists.txt        # Build system\n└── README.md\n```\n\n---\n\n## Contributing\n\nContributions are welcome — bug fixes, new features, balance changes, or documentation.\n\n1. Fork the repository\n2. Create a branch: `git checkout -b feature/your-feature`\n3. Commit your changes with clear messages\n4. Open a Pull Request against `main`\n\nPlease keep PRs focused. One feature or fix per PR.\n\n---\n\n## License\n\nGryphon is distributed under the **[GNU Lesser General Public License v3.0 (LGPLv3)](https://www.gnu.org/licenses/lgpl-3.0.html)**.\n\nIf you fork, modify, or build on this project — credit the original author: **[apozinn](https://github.com/apozinn)**.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n_The arena is open. Build your champion._\n\n**[apozinn](https://github.com/apozinn)** — Gryphon\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapozinn%2Fgryphon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapozinn%2Fgryphon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapozinn%2Fgryphon/lists"}