Skip to main content

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
CommandDescription
.hug @memberHug someone with a warm GIF
.kiss @memberGive someone a kiss
.kill @memberPlayfully “eliminate” someone (joke only)
Context menus registered by the roleplay cog:
Context MenuAction
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.
CommandSource APIDescription
.catthecatapi.comGet a random cat image
.dogdog.ceoGet a random dog image
.cuteanimalrandom from all supported speciesGet 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

CommandDescription
.memeFetch 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

CommandAliasesDescription
.connectfour @opponent.connect4, .c4Challenge 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

CommandAliasesDescription
.tictactoe @opponent.tttChallenge 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.
CommandDescription
/soundboard listList all guild sounds and Discord default sounds (ephemeral)
/soundboard play <name>Play a named sound in your current voice channel (with autocomplete)
/soundboard defaultList 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.
CommandPermission RequiredDescription
.uwulock @memberAdministratorToggle 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 (youuu, lovewuv, nonyo, 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.
CommandAliasesSourceRequires
.rule34 <tags>.r34rule34.xxxRULE34_API_KEY + RULE34_USER_ID
.gelbooru <tags>gelbooru.comGELBOORU_API_KEY + GELBOORU_USER_ID
.realbooru <tags>.realbrealbooru.comNo 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:
VariableDescription
RULE34_API_KEYRule34 API key
RULE34_USER_IDRule34 user ID
GELBOORU_API_KEYGelbooru API key
GELBOORU_USER_IDGelbooru 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.
CommandDescription
/nitro”Free Nitro!!!” — responds with a rickroll GIF
/boringA boring command (does nothing interesting)
/notboringClaims to be not boring — also does nothing interesting
/crazyTriggers 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.

Build docs developers (and LLMs) love