Skip to content

Repository files navigation

Niko Banner

🎵 Niko Discord Bot

A cozy, trilingual café-themed companion for your server


Python discord.py OpenAI License Status


🔗 Links

Name Link
Bot Invite Add Niko to your server
Support Server discord.gg/UfDBUGcKqY
GitHub developer51709/Niko
Wiki Page Official Wiki

📋 Overview

Niko is a warm, trilingual (EN / DE / ES) Discord bot with a cozy café personality. He is powered by OpenAI for natural conversation, remembers past interactions per user, and brings a lo-fi aesthetic to any community. With 20+ cog groups and 76 slash commands, Niko covers everything from a premium economy system and Lavalink music to moderation, giveaways, ticketing, social media notifiers, and more — all wrapped in an interactive Components v2 UI.

Current stats: 55 servers · 1,342 users · 76 slash commands


✨ Feature Highlights

🤖 AI & Personality

  • OpenAI-powered chat — mention Niko to start a conversation; he adapts his tone based on your favorability score and past memory
  • Trilingual — responds in English, German, or Spanish; auto-detects language
  • Multi-personalitycafé (warm bestie) and normal modes, configurable per server
  • AI image generation/imagine produces images in-channel
  • AI debugging system — automated error reporting and one-click AI-assisted fixes

💰 Premium Economy

  • PIL image cards — beautiful wallet, reward, and leaderboard cards rendered server-side
  • Job ladder — 8 tiers from Barista → Café Owner, each with unique pay, XP, and cooldowns
  • Tiered bank — 5 vault tiers (Tin Jar → Diamond Vault) with daily compound interest
  • Shop system — consumables (XP boosts, shields), upgrades (vault keys), collectibles
  • Weekly lottery — ticket-based with a rolling jackpot
  • Achievements — 15+ unlockable badges based on milestones and activity
  • Crime & rob — risk-based side income with item defenses
  • Transaction log — full history of every credit and debit

📊 Leveling

  • Per-message XP with configurable multiplier and cooldown
  • Per-guild settings: XP toggle, announcement channel, custom level-up messages
  • Role rewards at configurable thresholds
  • !levelpanel interactive CV2 management panel

🎵 Music

  • Lavalink / wavelink — high-quality, gap-free audio playback
  • YouTube, Spotify, and direct URL support
  • Three-state loop (off / track / queue), queue shuffle, volume control
  • Live now-playing card with progress bar and interactive buttons
  • Last.fm autoplay top-up for endless continuous listening

🛡️ Moderation

  • Full toolkit: kick, ban, mute, tempmute, warn, purge, slowmode, lock
  • AutoMod dashboard — anti-spam, anti-link, bad words, mass mention, external app raid protection
  • Whitelist system to exempt trusted users and roles
  • Mod-log channel with rich event embeds

👥 Community

  • Giveaways — CV2 setup wizard with join requirements (account age, server age, roles, booster)
  • Tickets — persistent per-guild ticket system with category and support-role config
  • Polls — live multi-option polls with real-time vote counts
  • Suggestions — board with admin approve/deny workflow
  • Starboard — auto-mirror starred messages
  • Tags — per-guild custom text snippets
  • Birthdays — daily birthday announcement task
  • Highlights — keyword-based DM notifications
  • Reminders — personal scheduled DM reminders
  • Social notifiers — YouTube, Twitter/X, TikTok, Bluesky, Reddit feed subscriptions

🎰 Casino

Blackjack, Slots, Roulette — all with PIL image cards and full economy integration

⚙️ Admin & Customization

  • Custom triggers — create custom trigger-response pairs per server with a permission-gated settings panel and role menu support
  • Prefix management, emoji sync, onboarding configuration
  • Per-guild configurable settings via interactive CV2 panels

💝 Donations

  • OxaPay integration — accept crypto donations directly through the bot
  • /donate command for supporters

🌐 Website & Dashboard

  • React + Vite public landing page, command directory, docs, and legal pages
  • Discord OAuth dashboard with live bot stats and guild configuration
  • Single-process Flask API served directly by the bot

📂 Project Structure

src/
├── bot.py            # Entry point — loads cogs, syncs slash commands, event loop
├── api_server.py     # Starts the dashboard API beside the bot
├── website.py        # Flask API routes and React build server
├── cogs/
│   ├── admin/            # Admin tools, prefix management, custom triggers
│   ├── ai/               # AI chat, memory, favorability, image generation
│   ├── automod/          # AutoMod dashboard, raid protection
│   ├── casino/           # Blackjack, Slots, Roulette, mini-games
│   ├── donations/        # Crypto donations via OxaPay
│   ├── economy/          # Balance, jobs, bank, shop, lottery, achievements
│   ├── fun/              # Roleplay, memes, animals, AFK, snipe
│   ├── giveaway/         # CV2 giveaway setup with join requirements
│   ├── help/             # Dynamic help system
│   ├── info/             # Serverinfo, userinfo, avatar
│   ├── legal/            # Legal information and terms
│   ├── leveling/         # XP, levels, leaderboard, level panel
│   ├── logging/          # Event logger (join/leave/edit/delete)
│   ├── moderation/       # Kick, ban, warn, mute, purge, mod-log
│   ├── music/            # Lavalink/wavelink music players
│   ├── notifier/         # Social media feed subscriptions
│   ├── onboarding/       # Verification, captcha, role assignment
│   ├── social/           # Polls, suggestions, starboard, tags, highlights
│   ├── system/           # Error handler, AI debugging reporter
│   ├── tickets/          # Persistent ticket system
│   ├── utility/          # Reminders, birthdays, translate, define
│   └── voicemaster/      # Dynamic voice channel creation
├── utils/                # Shared utility modules
│   ├── ai/               # OpenAI client, memory, config, debugging, actions
│   ├── image/            # PIL economy card renderer
│   ├── onboarding/       # Captcha generation, config, utils
│   ├── social/           # Platform scrapers (YouTube, Twitter, TikTok, Bluesky, Reddit)
│   ├── tickets/          # Ticket config and helpers
│   ├── paginator.py      # Shared PaginatedView for CV2 lists
│   ├── ratelimit.py      # Async rolling-window rate limiters
│   └── blacklist_manager.py
├── config/              # Bot configuration (emojis, AI config, etc.)
├── website/             # Generated React build served by website.py
│   └── dist/
├── web/                 # React + Vite dashboard source
│   ├── src/App.tsx      # Public pages and dashboard views
│   ├── src/api.ts       # Typed API client
│   └── src/styles.css   # Design tokens and responsive styles
└── data/                # Persistent storage (JSON + SQLite)
    ├── database.db       # Giveaway data (SQLite)
    ├── levels.json
    ├── level_config.json
    ├── mod_config.json
    ├── warnings.json
    ├── ticket_config.json
    ├── reminders.json
    ├── tags.json
    ├── birthdays.json
    ├── highlights.json
    ├── polls.json
    ├── suggestions.json
    ├── starboard.json
    └── economy_data/     # Per-user economy profiles (JSON)

🚀 Setup

  1. Add your DISCORD_BOT_TOKEN to environment secrets
  2. Add DISCORD_CLIENT_SECRET to enable Discord OAuth dashboard login
  3. Start the Discord Bot workflow — cogs load automatically, slash commands sync globally on first run
  4. Run npm run build when changing the frontend; the Run the bot workflow serves it
  5. In your server, use .levelpanel and .automod to configure per-guild settings interactively

Requirements: Python 3.10+, Node.js 20+, discord.py 2.3, wavelink, Flask, Pillow, OpenAI (via any OpenAI compatible API provider)


📜 Commands (summary)

Category Key Commands
Economy /balance /daily /work /job /shop /bank /lottery /pay /crime /rob
Leveling /level /level-leaderboard /levelpanel /levelconfig
Music /play /nowplaying /queue /skip /stop /loop /shuffle /volume
Casino /blackjack /slots /roulette /connectfour /tictactoe
Donations /donate
Moderation /kick /ban /warn /mute /purge /automod /whitelist
Giveaways /giveaway start/end/reroll/list
Tickets /ticket panel/config /close /delete
Community /poll /suggest /starboard /tag /birthday /highlight /notifier
AI & Chat @Niko /favor /memory /imagine /translate /define
Fun /hug /pat /boop /meme /cat /afk /snipe
Utility /remind /serverinfo /userinfo /avatar /prefix
Admin /reload /sync /emojisync /onboarding /voicemaster /trigger

🎨 UI System

All user-facing responses use discord.ui.LayoutView (Components v2) featuring:

  • Containers with colour accents per context
  • Text displays and section separators
  • Media galleries for image card rendering (economy, casino)
  • Action rows with buttons (music controls, ticket actions, paginator arrows)
  • Paginated views for leaderboards and command lists

Niko — making your Discord server cozier, one cup at a time 🍵

Built by @sorenthedev

About

Niko is a easy to use ai chatbot for discord that includes many different features and commands as well as a modular cog system and regular updates.

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Contributors

Languages