No description
Find a file
2025-06-13 10:52:20 +09:00
bot named some damn properties wrong 2025-06-13 10:52:20 +09:00
docs Theme and visual identity 2025-06-10 00:32:53 -03:00
migrations weighing migration 2025-06-03 22:53:10 -03:00
web works now but may need to revert file upload change 2025-06-13 10:50:24 +09:00
.gitignore named some damn properties wrong 2025-06-13 10:52:20 +09:00
.tool-versions baseline fedi abstraction stuff. 2025-06-13 10:37:24 +09:00
CLAUDE.md baseline fedi abstraction stuff. 2025-06-13 10:37:24 +09:00
dev_runner.py init 2025-05-15 22:14:41 -03:00
example_config.ini named some damn properties wrong 2025-06-13 10:52:20 +09:00
LICENSE License 2025-05-15 22:44:28 -03:00
readme.md documentation update for configurable backends 2025-06-13 10:50:03 +09:00
requirements.txt use a library for content type detection instead of handrolled 2025-06-13 10:50:24 +09:00
setup_db.py Add multi-env support 2025-05-29 13:27:56 +01:00
startup.sh init 2025-05-15 22:14:41 -03:00

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

📝 Docs

👉 Start reading the 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! The bot supports both Misskey and Pleroma instances through configurable backends.

🗃️ Tech Stack

  • Python (3.12+)
  • 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.

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