NyrxBot

Everything the bot does

The full list of features, what each one does, and who can use it.

Getting started

Adding the bot

Discord only lets you add a bot where you have the Manage Server permission, so that is the short answer to which of your servers you can add it to.

The invite link asks for the exact permissions the bot's features need: reading and sending messages, embedding links, managing messages for the purge command, connecting and speaking in voice channels, timing members out, and managing roles. Discord shows you the full list on the authorisation screen before you accept.

Administrator is on that list too. It is there so the bot never hits a missing-permission wall on a server with unusual channel overrides — the most common complaint before it was added was the bot not seeing channels it had been given. It does mean the bot can do anything on your server, and Discord shows you that clearly before you accept.

What the bot can see

The bot sees a channel when its role is allowed to see it. A channel with its own permission overwrites — a private channel where @everyone has been denied access — stays invisible until you add the bot's role to that channel. No invite link changes that: a per-channel overwrite beats a role permission, by Discord's design.

By default the bot answers in every channel it can see. You can narrow that down with the channel list, and then it only answers where you allow it.

Prefix and how to run commands

NyrxBot has no prefix. There is no !, no ?, no dot. Every command is a Discord slash command: type / in the message box and pick the one you want, or start typing its name.

This is not an omission. Prefixes were how bots worked before Discord had slash commands; today they mean the bot has to read every message on the server just to notice the ones aimed at it. Slash commands are announced to Discord up front, so they show you the options, check the types, and reach the bot without it having to watch the channel.

If typing / shows nothing, the commands are not registered on that server yet — re-add the bot using the invite link, which grants the applications.commands scope.

The bot is not responding

Four things account for almost every case. First: the channel list. If the server has one set and this channel is not on it, the bot stays quiet everywhere except the configuration commands. Check it with /channels list.

Second: permissions on this specific channel. A channel can deny the bot's role even though the server-wide permission allows it, and a per-channel overwrite always wins.

Third: the command you used is limited to a role you do not have. Moderation and automod go to the roles named in the dashboard; the server owner always passes.

Fourth: the commands are not registered — typing / shows nothing from this bot. Re-adding it with the invite link fixes that.

Language

The bot speaks Polish or English, set per server. The website language and the bot language are separate settings — changing one does not touch the other.

It is changed in the dashboard, under the server's settings. There is deliberately no command for it: configuration lives in one place, and a command everyone can see would only invite attempts that end in a refusal.

New servers start in English. A server that already chose Polish keeps Polish — changing the default never rewrites anyone's setting.

  • /settingsShows the current configuration.

Music

Playing tracks

Join a voice channel and the bot follows you there. Searching goes through SoundCloud; links from Spotify and Apple Music work too — the bot reads the title and artist from them and finds the track in the source it can actually stream.

Music commands are open to everyone on the server. That is deliberate: gatekeeping a queue tends to create more arguments than it settles.

Everything you would expect is a command: change or skip the current track, change the volume, shuffle, repeat, and see what is queued up. The buttons under the player message do the same things without typing.

  • /playAdds a track or playlist to the queue.
  • /music pausePauses playback.
  • /music resumeResumes playback.
  • /music skipSkips the current track.
  • /music stopStops and clears the queue.
  • /music leaveDisconnects the bot from voice.
  • /music shuffleShuffles the queue.
  • /music volumeSets the volume.
  • /music loopRepeats one track, the whole queue, or nothing.
  • /playlistShows the queue, page by page.
  • /filtersAudio effects: bass boost, nightcore, vaporwave, equaliser presets.

The player message

When a track starts, the bot posts a message with the cover art, a progress bar and control buttons. Switching tracks updates that message rather than posting a new one, so the channel does not fill up.

You can choose how the buttons look — icons only, text only, or both — in the dashboard.

Playing from the website (the hub)

The hub is a live player in your browser, and it is open to everyone on the server — not just to people who run it. Log in with Discord, pick a server, and you get the player, a search box, the worldwide chart and what your server played recently.

Watching is open to any member. Controlling requires you to be sitting in the voice channel with the bot, exactly like the slash commands. If you are not in it, the buttons stay greyed out and the page tells you why. If the bot is not playing anywhere yet, being in any voice channel is enough to call it in.

The hub lives at nyrxbot.xyz under Music, separately from the dashboard. The dashboard is for configuring the bot and stays with whoever manages the server; the hub is for using it. A server owner can switch the hub off entirely in the dashboard settings.

DJ mode: who controls the music

DJ mode is on by default and means the obvious thing: anyone sitting in the voice channel with the bot can control the queue — play, skip, pause, volume, radio.

A server owner can turn it off in the dashboard settings. Control then belongs to the owner and to the roles ticked there, and everyone else can listen and watch but not touch. If no role is ticked, only the owner is in control.

The setting covers everything at once: slash commands, the buttons under the player and the hub in your browser. Turning it off is not a website-only restriction, so it cannot be walked around with a /skip.

Radio

Every server gets the same shared pool of stations, and those cannot be edited or removed — that is what makes them shared. On top of that, a server can add its own stations by stream address.

Adding and removing stations is limited to the server owner and one role you designate in the dashboard. Listening is open to everyone.

  • /radio playStarts a station.
  • /radio panelPosts a panel with a button per station.
  • /radio listLists the available stations.
  • /radio addAdds a station of your own.
  • /radio deleteRemoves one of your own stations.

24/7 mode

24/7 keeps the bot in one voice channel around the clock. Two things make that true rather than approximately true: when the queue runs out the bot goes back to the station instead of counting down to leaving, and after a restart it rejoins the channel on its own and resumes what was playing.

Turn it on with /247 on while you are sitting in the channel you want the bot to stay in, or pick the channel in the dashboard. The station it resumes is simply the last one played, so play a station once and the bot knows what to come back to.

It is meant for radio. A queue of individual tracks still ends, and 24/7 will fall back to the saved station rather than replaying the queue.

  • /247 onKeeps the bot in your current voice channel.
  • /247 offTurns the mode off.

Moderation

Actions and cases

Every moderation action opens a numbered case and, when a log channel is set, posts an entry there. The person on the receiving end gets a direct message explaining what happened and why, sent before they lose access — otherwise it would never reach them.

Moderation commands are available to the server owner and to the roles you list in the dashboard. Discord's own Administrator permission does not grant access on its own; this was deliberate, so that a role can moderate without also being able to change every other setting.

  • /banBans a user.
  • /unbanLifts a ban.
  • /kickRemoves a member from the server.
  • /muteTimes a member out for a given duration.
  • /unmuteLifts a timeout.
  • /warn addWarns a member.
  • /warn showShows someone's punishment history.
  • /warn removeRevokes a case by number.
  • /clearBulk-deletes recent messages.
  • /slowmodeSets slowmode on the channel.

Automod

Automod watches messages and reacts on its own. Rules can be turned on one at a time: invites to other servers, links outside an allowed list, excessive capitals, mention floods, a blocked word list, and message spam.

A hit deletes the message, adds a strike and posts a short notice that removes itself after a few seconds. When strikes reach the threshold, the punishment you configured is applied — or nothing, if you would rather it only delete.

The word filter strips accents and repeated characters before matching, so simple masking does not get past it. Moderators are always skipped, and you can add further exceptions by role or channel.

  • /automod statusShows the current automod settings.
  • /automod onTurns the module on.
  • /automod offTurns the module off.
  • /automod ruleTurns a single rule on or off.
  • /automod warnSets the punishment and the strike threshold.
  • /automod wordsManages the blocked word list.
  • /automod skipAdds or removes a role or channel exception.

Logs

With a log channel set, the bot records deleted and edited messages, moderation cases and automod hits. Message logs include the content, so pick a channel your moderators can see and your members cannot.

The dashboard has the same thing in a form you can search and filter, in two separate tabs. The bot log shows what the bot did — commands with the options given, tickets, automod punishments and settings changes; it holds no message content and is on by default. The server log shows what happened on the server — deleted and edited messages with their content, joins and leaves; because it stores your members' words it is off by default and the owner turns it on deliberately.

Both share one retention period, 1 to 90 days, 30 by default. Entries delete themselves after it, and removing the bot from the server wipes them at once. The log channel and the dashboard logs are independent: either works without the other.

  • /logSets the log channel.

Community

Greetings and farewells

Pick a channel and the bot writes there when someone joins, and a second channel for when someone leaves. Either can stay unset — with no channel the bot says nothing, which is also how you turn the feature off.

The text is yours. Leave it empty and the bot uses a sensible default in the server's language; fill it in and you can use {user} for a mention that actually pings, {username} for the plain name, {tag} for the name with its number, {server} for the server name and {count} for the member count.

The message is sent as ordinary text rather than an embed. Mentions inside an embed do not notify anyone, and a welcome that never reaches the person being welcomed misses the point.

Levels and rank cards

Members earn 15 to 25 XP for a message, at most once a minute. The cooldown is the point: without it levels go to whoever types the fastest rather than whoever actually talks. Each level costs 5·L² + 50·L + 100 XP, the same curve the bots your members already know use, so level 20 means roughly what they expect it to mean.

/rank draws a card as an image — avatar, level, rank, message count and a progress bar to the next level. /top shows the leaderboard on Discord; the dashboard has the full table.

Levels are off by default. A bot that starts announcing promotions on someone else's server without being asked is a bot that gets removed from it, so the owner turns this on deliberately. You can also name channels where XP is not earned — command and bot channels are the usual ones — and pick where level-ups are announced, or leave it on the channel where the message was sent.

  • /rankShows your level card, or someone else's.
  • /topShows the server leaderboard.
  • /xpAdds, removes, sets or wipes a member's XP.

Voice XP and level modes

Time on a voice channel earns XP too — a set amount per full minute, checked once a minute. Sitting alone in a channel earns nothing, and neither does sitting there with sound off: the point is to reward conversation, not an open client left overnight.

Chat XP and voice XP are stored on separate tracks, and how they turn into a level is your choice. Combined puts them in one pool and gives one level, which is what most servers expect. Separate keeps two independent levels with their own announcements. Sum keeps the tracks apart but announces their total.

Because the two are stored separately, switching modes never loses anything — you can change your mind and the numbers are all still there.

The channel restriction applies to voice as well, matched on the channel a member is sitting in. That is worth remembering when you use a whitelist: a whitelist of text channels alone silently stops voice XP.

Rewards, multipliers and rank cards

A level can grant a role. Every reward up to the level reached is granted, not only the newest one — someone who gains two levels at once, or gets XP from a command, ends up with everything they are owed instead of gaps you would have to fix by hand. Turning on “remove previous rewards” leaves only the highest tier, so the roles form a ladder rather than a collection.

Named roles can earn XP faster. When a member has several of them the highest multiplier wins; they are not multiplied together, because stacking three bonuses ends in a rate nobody chose on purpose.

Rank cards come in a handful of themes, and you can override the accent and background colour with your own. Themes rather than a free editor is deliberate: it is hard to make an unreadable card this way.

The whole leaderboard can be published on the website without a login. It is a list of your members' names, so it is off until you turn it on.

Starboard

Pick a channel, a reaction and a threshold. A message that collects enough of that reaction gets reposted there with a counter and a link back to the original. The counter updates as reactions come and go, and if a message drops below the threshold its entry disappears.

The author's own reaction does not count towards the threshold unless you allow it. Otherwise anyone could promote their own message and the board stops meaning anything.

The bot does not copy the message into its database — the entry is rebuilt from the live message each time. Delete the original and the entry stops being tracked.

Member support

Tickets

You define categories — a name, an emoji and a short intro each — and the bot posts a panel with one button per category. A click opens a private channel visible to the person and to the staff roles you named. One open ticket per person, so a second click does not create a second channel for the same thing.

Staff claim a ticket with a button, which records who is handling it. Closing it builds a transcript, posts it as a file on the channel you designate and then deletes the ticket channel. The transcript lives on Discord, under your control; the bot stores only the link to it, never the conversation.

The panel can be posted from the command or from the dashboard, and both draw exactly the same thing. Posting again from the dashboard to the same channel edits the existing panel rather than adding a second one, so changing your categories does not leave an outdated panel behind for people to keep clicking.

  • /ticket panelPosts the ticket panel in this channel.
  • /ticket closeCloses the ticket in this channel.

Answering questions

With this on, the bot recognises questions about itself on your channels and answers them with content from this documentation. It is off by default: a bot that starts reading and commenting on conversations on someone else's server without being asked does not stay there long.

There is no language model behind it and that is a decision, not a shortcut. A model would cost money per question and this bot is free. When a question falls outside the documentation the bot says it does not know and links here, which is more useful than a confident guess.

If the bot stays silent on a question you expected it to answer, /faq says why — whether the feature is off, the channel is outside the allowed list, permissions are missing, or the question simply did not match anything. It also lets you run any sentence through the same matcher.

  • /faqExplains why the bot does or does not answer questions.

Configuration

Where the bot works

An empty channel list means the bot works everywhere. To limit the bot to one channel, or to a few, add them to the list — it then answers only there and stays quiet elsewhere. The configuration commands themselves always go through, whatever the list says — otherwise a wrong entry would lock you out of fixing it.

  • /channels addAllows the bot in a channel.
  • /channels removeRemoves a channel from the list.
  • /channels listShows the current list.
  • /channels clearClears the list, letting the bot work everywhere.

Temporary voice channels

Pick one voice channel as the entry point. Anyone who joins it gets their own voice channel and is moved into it straight away; nobody ever stays in the entry channel itself, so name it like a button — "➕ New channel" reads better than "General 2".

The person who created the channel owns it, and the bot hands them permission to manage that one channel. That means they rename it, set a user limit, lock it or invite specific people using Discord's own interface — no commands to learn and nothing to configure on the website.

The channel deletes itself the moment the last person leaves. After a bot restart any leftover empty ones are swept away too, so a restart never leaves clutter behind.

Persistent roles

With this on, someone who leaves the server and comes back gets their roles and nickname back automatically. Off by default, and deliberately so: quietly restoring roles is surprising behaviour, and leaving and rejoining would stop being a way to shed a role.

Two kinds of role never come back, because Discord does not allow it: roles managed by an integration (bot roles, the booster role) and roles positioned above the bot's own. Move NyrxBot's role high enough in the list and the rest returns.

The bot only stores this while someone is away. The record is written when they leave, removed the moment their roles are restored, and deleted on its own after 90 days.

Who can do what

Permissions are built on roles you name, not on Discord's permission flags. The server owner always passes — that is the way out if a role is ever set wrong.

Moderation goes to the moderator roles, automod to the automod roles, radio management to one designated role, music to everyone. Channel and language settings stay with the owner alone.