Documentation Index
Fetch the complete documentation index at: https://mintlify.com/developer51709/Niko/llms.txt
Use this file to discover all available pages before exploring further.
Niko’s fun cog adds personality and engagement to your server with roleplay actions, random animal images, memes, interactive mini-games, a voice channel soundboard, UwU lock channel moderation, and optional NSFW image commands.
Roleplay Actions
These commands tag another server member and post a themed card with a randomly selected GIF. They also register as right-click context menu actions — right-click any member in Discord and find them under Apps.
All commands follow the format: .hug @member
| Command | Description |
|---|
.hug @member | Hug someone with a warm GIF |
.kiss @member | Give someone a kiss |
.kill @member | Playfully “eliminate” someone (joke only) |
Context menus registered by the roleplay cog:
| Context Menu | Action |
|---|
| Hug 💖 | Hug a member via right-click |
| Kiss 💋 | Kiss a member via right-click |
| Kill 💀 (playful) | Playfully eliminate a member via right-click |
The embed description, GIF pool, and any footer text are personality-aware — they adapt to Niko’s active personality mode (normal or café) and your server’s language setting.
Animals
Fetch a random animal image from free public APIs. Each command sends a card with the image rendered inline.
| Command | Source API | Description |
|---|
.cat | thecatapi.com | Get a random cat image |
.dog | dog.ceo | Get a random dog image |
.cuteanimal | random from all supported species | Get a random image from a randomly chosen animal species |
The .cuteanimal command randomly picks from a wider pool of species including cat, dog, fox, duck, panda, red panda, koala, bird, raccoon, kangaroo, whale, elephant, giraffe, otter, and capybara — no individual per-species commands exist for these beyond .cat and .dog.
All animal commands are keyless — no API credentials are required.
Memes
| Command | Description |
|---|
.meme | Fetch a random meme from Reddit via meme-api.com |
The meme card displays the post title, upvote count, subreddit, and a link to the original post. In non-NSFW channels, NSFW-flagged posts are automatically filtered out from the response pool. If no safe memes are available, Niko returns an error message.
Mini-Games
Connect Four
| Command | Aliases | Description |
|---|
.connectfour @opponent | .connect4, .c4 | Challenge a server member to a game of Connect Four |
A full 6×7 Connect Four board is rendered using custom emoji pieces directly inside a Discord component container. Column selection uses interactive buttons split across two rows (columns 1–4, then 5–7). The board’s accent colour changes to reflect whose turn it is — red for Player 1, gold for Player 2, and green when the game ends.
Features:
- Enforces turn order — clicking a button out of turn sends an ephemeral error
- Detects wins horizontally, vertically, and diagonally
- Detects ties when the top row fills completely
- Cannot challenge yourself or a bot
Tic-Tac-Toe
| Command | Aliases | Description |
|---|
.tictactoe @opponent | .ttt | Challenge a member to Tic-Tac-Toe |
A 3×3 interactive button grid where Player 1 is X (red buttons) and Player 2 is O (green buttons). The game checks for a winner after every move and disables all buttons once the game concludes. Clicking out of turn returns an ephemeral error visible only to that player.
Has a 2-second per-user cooldown to prevent spam.
Soundboard
Niko can play Discord’s built-in guild soundboard sounds and default sounds directly in a voice channel — no Nitro required.
| Command | Description |
|---|
/soundboard list | List all guild sounds and Discord default sounds (ephemeral) |
/soundboard play <name> | Play a named sound in your current voice channel (with autocomplete) |
/soundboard default | List all Discord default soundboard sounds (ephemeral) |
The /soundboard play command supports autocomplete — typing part of a sound name suggests matching guild sounds and default sounds live.
You must be in a voice channel to use /soundboard play. Guild sounds are searched first; if no guild sound matches, Niko falls back to Discord’s default sounds.
UwU Lock
UwU lock is a channel-scoped moderation prank: when active for a user, every message they send in that channel is deleted and re-posted through a webhook in uwu-ified form, using their own username and avatar.
| Command | Permission Required | Description |
|---|
.uwulock @member | Administrator | Toggle UwU lock on/off for the specified member in the current channel |
Running .uwulock @member a second time in the same channel removes the lock and deletes the associated webhook.
How uwu-ification works:
- All
r and l characters are replaced with w (and R/L with W)
- Random interjections (
owo, uwu, x3, rawr~, etc.) are sprinkled throughout
- Certain words are substituted (
you → uu, love → wuv, no → nyo, etc.)
- Slurs and threats defined in
blocked_words.json are replaced with friendly substitutes
UwU lock requires the Manage Webhooks permission for both the bot and the command invoker. The bot also requires Administrator permission as declared in the command decorator. Without Manage Webhooks, webhook creation will fail and the lock cannot be applied.
Lock state is persisted to data/uwulock.json and survives bot restarts.
NSFW Commands
Niko includes image-fetching commands powered by Rule34, Gelbooru, and Realbooru. These commands are restricted to channels that are marked as NSFW in Discord’s channel settings.
NSFW commands only work in channels designated as NSFW in Discord. Using them in a standard channel will result in an error. Server administrators are responsible for ensuring NSFW channels are appropriately access-restricted.
| Command | Aliases | Source | Requires |
|---|
.rule34 <tags> | .r34 | rule34.xxx | RULE34_API_KEY + RULE34_USER_ID |
.gelbooru <tags> | — | gelbooru.com | GELBOORU_API_KEY + GELBOORU_USER_ID |
.realbooru <tags> | .realb | realbooru.com | No API key required |
Each command accepts tag-based search queries, selects a random image from up to 100 results, and displays it in a component card with the query, image source link, and requesting user’s mention.
Environment variables needed:
| Variable | Description |
|---|
RULE34_API_KEY | Rule34 API key |
RULE34_USER_ID | Rule34 user ID |
GELBOORU_API_KEY | Gelbooru API key |
GELBOORU_USER_ID | Gelbooru user ID |
The Realbooru command (.realbooru) uses a custom utils/realbooru.py helper and requires no API credentials.
Miscellaneous Fun Commands
These commands are available as both prefix and slash commands.
| Command | Description |
|---|
/nitro | ”Free Nitro!!!” — responds with a rickroll GIF |
/boring | A boring command (does nothing interesting) |
/notboring | Claims to be not boring — also does nothing interesting |
/crazy | Triggers the “Crazy? I was crazy once…” copypasta |
Monthly Bnuy
On the 31st of every month at 9:00 AM, Niko automatically posts a bunny GIF to a hardcoded channel (TARGET_CHANNEL_ID in src/cogs/fun/bnuy.py). This is a hardcoded internal feature — change the channel ID in the source file if you want it to post somewhere else.