bot | ||
docs | ||
migrations | ||
web | ||
.gitignore | ||
dev_runner.py | ||
example_config.ini | ||
LICENSE | ||
readme.md | ||
requirements.txt | ||
setup_db.py | ||
startup.sh |
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. Currently designed for use with Misskey. Name comes from Kemonomimi and Fediverse.
📝 Docs
🤌 Install instructions for those in a rush
🔧 Features
✅ Implemented
- 🎲 Character roll system
- 🧠 Core database structure for cards
- 📦 Basic support for storing pulls per player
- ⏱️ Time-based limitations on rolls
- ⚠️ Explicit account creation/deletion
🧩 In Progress
- 📝 Whitelist system to limit access
🧠 Roadmap
See our v2.0 board for more details
🛒 Gameplay & Collection
- 🔁 Trading system between players
- ⭐ Favorite characters (pin them or set profiles)
- 📢 Public post announcements for rare card pulls
- 📊 Stats for cards
- 🎮 Games to play
- ⚔️ Dueling
- 🧮 Leaderboards
- Most traded cards
- Most owned cards
- Most voted cards
- Most popular cards (via usage-based popularity metrics)
- Users with the rarest cards
🎨 Card Aesthetics
- 🖼️ Simple card template for character rendering
- 🌐 Web app to generate cards from images
🌍 Fediverse Support
✅ Anyone from the fediverse can play, but the server only works using a Misskey instance. Want to rewrite the program in Elixir for Pleroma? Let us know!
🗃️ Tech Stack
- Python (3.12+)
- SQLite
- Fediverse API integration (via Misskey endpoints)
- Flask
- Modular DB design for extensibility
💡 Philosophy
The bot is meant to feel light, fun, and competitive. Mixing social, gacha and duel tactics.
📝 License
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
This means:
-
You are free to use, modify, and redistribute this software under the same license.
-
If you modify and deploy the software (for example, as part of a web service), you must also make the source code of your modified version available to users of that service.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/. The full license text can be found here: https://www.gnu.org/licenses/agpl-3.0.html
The AGPL is designed to ensure that software freedom is preserved, especially in networked environments. If you improve this project or build something on top of it, please give back to the community by sharing your changes too.
Unless another license is listed, every file in the project is licensed under the GNU General Public License version 3 (or at your option), any later version.
flowchart TD
subgraph Player Interaction
A1[Misskey bot]
A2[Web]
end
subgraph Misskey
B1[Misskey instance]
end
subgraph Bot
C1[Bot core in Python]
C2[Notification parser]
C3[Gacha roll logic]
C4[Database interface]
C5[Misskey 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