# Kemoverse A gacha-style bot for the Fediverse built with Python. Users can roll for characters, trade, duel, and perhaps engage with popularity-based mechanics. Supports both Misskey and Pleroma instances. Name comes from Kemonomimi and Fediverse. ![Fediverse Gacha Bot Logo](./web/static/logo.png) ## ๐Ÿ”ง Features ### โœ… Implemented - ๐ŸŽฒ Character roll system - ๐ŸŽด Cards stats system - ๐Ÿง  Core database structure for characters and stats - ๐Ÿ“ฆ Basic support for storing pulls per user ### ๐Ÿงฉ In Progress - ๐Ÿ“ Whitelist system to limit access - โฑ๏ธ Time-based limitations on rolls - โš”๏ธ Dueling system ## ๐Ÿง  Planned Features (Long Term) ### ๐Ÿ›’ Gameplay & Collection - ๐Ÿ” **Trading system** between users - โญ **Favorite characters** (pin them or set profiles) - ๐Ÿ“ข **Public post announcements** for rare card pulls - ๐Ÿงฎ **Leaderboards** - Most traded Characters - Most owned Characters - Most voted Characters - Most popular Characters (via usage-based popularity metrics) - Users with the rarest Characters ### ๐ŸŽจ Card Aesthetics - ๐Ÿ–ผ๏ธ Simple card template for character rendering - ๐ŸŒ Web app to generate cards from images ### ๐ŸŒ Fediverse Support โœ… Anyone from the fediverse can play! The bot supports both Misskey and Pleroma instances through configurable backends. ## ๐Ÿ—ƒ๏ธ Tech Stack - Python (3.11+) - SQLite - Fediverse API integration (Misskey and Pleroma support) - Flask - Modular DB design for extensibility ## ๐Ÿ’ก Philosophy The bot is meant to feel *light, fun, and competitive*. Mixing social, gacha and duel tactics. ## ๐Ÿงช Getting Started (coming soon) Instructions on installing dependencies, initializing the database, and running the bot locally will go here. ```mermaid flowchart TD subgraph Player Interaction A1[Fediverse bot] A2[Web] end subgraph Fediverse B1[Fediverse instance] end subgraph Bot C1[Bot core in Python] C2[Notification parser] C3[Gacha roll logic] C4[Database interface] C5[Fediverse API poster] end subgraph Website D1[Flask backend] D2[User account system] D3[Image gallery] end subgraph Backend E1[Shared database] E2[Virtual environment] E3[Debian Linux server] end A1 <-->|Send or receive mention| B1 B1 -->|Send mention| C2 C2 -->|Command and information| C3 C3 <-->|Ask for command information and confirmed roll setting| C4 C4 <--> E1 C3 -->|Command result and info| C5 C5 -->|Resulting Mention| B1 A2 --> D1 D1 --> D2 D1 --> D3 D2 --> E1 D3 --> E1 C1 --> E2 D1 --> E2 E1 --> E3 B1 --> E3 ```