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.

Can’t find the answer you’re looking for here? Join the support server at discord.gg/UfDBUGcKqY and open a ticket, or ask in the community channels. The team and community are happy to help with setup, configuration, and any bugs you encounter.
The default command prefix is . (dot), set by DEFAULT_PREFIXES in src/utils/prefix_manager.py. Per-guild prefixes are stored in data/prefixes.json and managed by the dynamic prefix system — no code edit or restart is needed.Server administrators can add, remove, or reset prefixes at runtime using the .prefix command (requires the Manage Server permission). The prefix manager stores per-guild prefixes persistently so they survive bot restarts.
Self-hosted instance: Create an application at discord.com/developers/applications, navigate to Bot, and enable all three privileged intents (Server Members, Message Content, Presence). Then go to OAuth2 → URL Generator, select the bot and applications.commands scopes, choose the permissions your setup requires, and use the generated link to invite your bot.Official hosted instance: Use the direct invite link: discord.com/oauth2/authorize?client_id=1520558530472448170
Work through this checklist in order:
  1. Bot permissions — Niko needs a range of Discord permissions to function correctly depending on the feature (e.g. Manage Webhooks for the logging and notifier cogs, Manage Roles for level role rewards, Moderate Members for mute/timeout). Verify the bot’s role has the required permissions in the relevant channels and server-wide.
  2. Privileged intents — All three privileged intents (Server Members, Message Content, Presence) must be enabled in the Discord Developer Portal under your application’s Bot settings. Without them, many features silently fail.
  3. Slash command sync — If a slash command doesn’t appear in the command picker at all, the commands haven’t been synced yet. Run .sync (owner only) or restart the bot. Note that global sync can take up to an hour to propagate.
Run the !automod command in your server to open the interactive AutoMod dashboard (powered by Components v2). From the dashboard you can configure:
  • Anti-spam — rate-limit rapid message sequences
  • Anti-link — block external URLs (with whitelist support)
  • Bad-words filter — custom blocked word/phrase list
  • Mass mention protection — cap the number of mentions per message
  • Raid detection — monitor unusual join velocity and trigger automated lockdown
All settings are stored per guild and take effect immediately without a bot restart.
Run !levelpanel in your server to open the interactive leveling management panel. From there you can:
  • Toggle XP gain on or off server-wide
  • Set the XP announcement channel
  • Customise the level-up message text
  • Add role rewards that are automatically assigned when users reach configured level thresholds
For more granular control (e.g. resetting a specific user’s XP), use !levelconfig subcommands.
Niko’s music system is built on wavelink and requires a running Lavalink audio node to function. If music commands fail or produce errors:
  1. Make sure your Lavalink node is running and accessible from the server hosting the bot.
  2. Check that the Lavalink connection details (host, port, password) in your environment match the node’s configuration.
  3. Review the startup logs — a successful wavelink connection produces a confirmation message; a failed connection will show a connection error.
See the official Lavalink documentation at lavalink.dev for installation and setup guidance.
Use the /clearhistory slash command. This permanently erases your stored conversation history (the last 3 message exchanges) and any memory notes Niko has built up about you. After running the command your next interaction starts from a clean slate.
  1. Run /ticket config to configure the ticket system for your server — you will be prompted to select the category channel where new ticket channels should be created and the support role that gets access to every ticket.
  2. Run /ticket panel to post the ticket creation panel (a button embed) in the channel of your choice. Members click the button to open a new ticket.
Tickets are persistent — they survive bot restarts and are stored in the database until explicitly deleted with /close or /delete.
There are two ways to report a bug:
  • GitHub Issues — Open an issue at github.com/developer51709/Niko/issues. Include a description of what happened, what you expected to happen, and any error messages or screenshots you have.
  • Discord — Contact @.n.y.x.e.n. on Discord directly with the same details.
The more context you provide (bot version, server setup, reproduction steps), the faster the issue can be triaged.
No — with two narrow exceptions:
  1. AI conversation history — the last 3 message exchanges per user are kept in memory.json to give the language model short-term context. You can erase this at any time with /clearhistory.
  2. Snipe cache — the most recently deleted or edited message per channel is held in memory only and is cleared every time the bot restarts. It is never written to disk.
No other message content is retained after it has been processed.
Niko stores only your Discord User ID as a key, associated with the following data depending on which features you use:
Data typeWhere stored
Economy balance, bank, inventory, job, transaction logdata/economy_data/{user_id}.json
XP and leveldata/levels.json
Moderation warningsdata/warnings.json
Remindersdata/reminders.json
Highlight keywordsdata/highlights.json
Birthday (MM-DD)data/birthdays.json
AI conversation history and memory notesmemory.json
No usernames, display names, avatars, or messages are permanently stored, except for the AI conversation history described above (which you can delete with /clearhistory). Presence data is read in real time and is never written to disk.

Build docs developers (and LLMs) love