Ony
A powerful, feature-rich Discord bot for your community
Moderation
Full suite of moderation tools — ban, kick, mute, timeout, warn with auto-ban, and message clearing.
Giveaways
Create timed giveaways with multiple winners, reroll support, and per-server management.
Profiles
Beautiful canvas profile cards with custom bio, badges, marriage status, and more.
Logging
Granular log channels for staff actions, messages, voice events, and bot activity.
Fun
Ship users, play rock-paper-scissors, marry your server partner, and more.
Customizable
Welcome messages, log channels, and per-server configuration to fit your community.
Command Categories
Getting Started
Everything you need to know to get Ony running in your server.
Invite Ony
Use the /invite command or the invite link below to add Ony to your server. Make sure to grant all requested permissions for full functionality.
Set up Log Channels
Use /logs set to configure where Ony sends audit logs. Available channels: staff-logs, message-logs, bot-logs, voice-logs, invite-logs.
Configure Welcome Messages
Use /welcome set to choose a channel for greeting new members with a custom message.
You're ready!
All slash commands are immediately available. Type / in any channel to see the full command list, or browse the sidebar.
Ony needs the following permissions to function correctly: Manage Webhooks, Manage Emojis, Manage Messages, Ban Members, Kick Members, Moderate Members, Send Messages, Embed Links, Read Message History.
New Updates
A running changelog of what's new and improved in Ony.
/rps vs user — Pick choice hidden
- Fixed a bug where the first player's pick was revealed publicly before the second player chose — now shows "Locked in!" instead
/rps vs user — Challenger buttons fix
- Fixed a bug where the challenger never received their pick buttons when playing RPS vs another user
Voice Logs
- Voice logs now fully functional — logs when a member joins, leaves, or moves between voice channels
- Set a channel with
/logs set voice-logs #channel
Announce Command
- New
/announcecommand — send an announcement as the bot with optional image and title - Image appears above the text for a clean presentation
Ticket System
- New
/ticket setupcommand — configure ticket panel, category, and staff role - 4 ticket types: Support, Report, Apply, Appeal — each with its own button on the panel
- Tickets auto-numbered:
ticket-0001,ticket-0002, etc. - One open ticket per user — prevents duplicates
Warning History
- New
/warnscommand — view all warnings for a member with reason, moderator, and timestamp
Auto-role on Join
- New
/welcome autorolesubcommand — assign a role automatically when a member joins - Replaces the need for a separate verification bot
/welcome statusnow shows the configured auto-role
Badges
Exclusive badges you can earn and display on your Ony profile card.
Available Badges
Awarded to the developer of Ony bot.
Own a server with over 2,000 members that uses Ony.
Donate at least $2 to support Ony's development.
Win a giveaway in the Ony Support Server.
Have a badge idea? Join the Ony Support Server and let us know.
For the moment badges are given manually. In the future they will be obtainable through quests, and new badges will be added weekly.
/help
Display all available commands organized by category.
Usage
/help/botinfo
Display statistics and information about Ony.
Usage
/botinfo/invite
Get the invite link to add Ony to your server.
Usage
/invite/userinfo
View detailed information about a user.
Usage
/userinfo [user]Options
| Option | Type | Required | Description |
|---|---|---|---|
user | User | No | The user to look up. Defaults to yourself. |
/serverinfo
View detailed information about the current server.
Usage
/serverinfo/avatar
Get a user's avatar in full resolution.
Usage
/avatar [user]Options
| Option | Type | Required | Description |
|---|---|---|---|
user | User | No | The user whose avatar to display. Defaults to yourself. |
/banner
Get a user's profile banner in full resolution.
Usage
/banner [user]Options
| Option | Type | Required | Description |
|---|---|---|---|
user | User | No | The user whose banner to display. Defaults to yourself. |
/afk
Set or clear your AFK status.
Usage
/afk [reason]Options
| Option | Type | Required | Description |
|---|---|---|---|
reason | String | No | Reason for being AFK (shown when someone mentions you). |
/profile
View a beautiful canvas profile card for yourself or another user.
Usage
/profile [user]Options
| Option | Type | Required | Description |
|---|---|---|---|
user | User | No | The user to view. Defaults to yourself. |
/setprofile
Customize your profile card fields.
Usage
/setprofile <field> <value>Fields
| Field | Description | Max Length |
|---|---|---|
name | Your display name on the card | 32 |
pronouns | Your pronouns (e.g. he/him) | 32 |
birthday | Your birthday (e.g. 01/01/2000) | 32 |
occupation | Your job or role | 64 |
timezone | Your timezone (e.g. UTC+2) | 32 |
description | A short bio about yourself | 128 |
/rps
Play rock-paper-scissors against the bot.
Usage
/rps <choice>Options
| Option | Type | Required | Description |
|---|---|---|---|
choice | String | Yes | Your move: rock, paper, or scissors. |
/ship
Calculate the compatibility percentage between two users.
Usage
/ship <user1> <user2>Options
| Option | Type | Required | Description |
|---|---|---|---|
user1 | User | Yes | First user to ship. |
user2 | User | Yes | Second user to ship. |
/marry
Propose to another user and marry them in-bot.
Usage
/marry <user>Options
| Option | Type | Required | Description |
|---|---|---|---|
user | User | Yes | The user to propose to. |
/divorce
Divorce your current in-bot partner.
Usage
/divorce/ban
Ban a member from the server.
Usage
/ban <user> [reason] [delete_days]Options
| Option | Type | Required | Description |
|---|---|---|---|
user | User | Yes | The member to ban. |
reason | String | No | Reason for the ban (shown in audit log and DM). Max 512 chars. |
delete_days | Integer | No | Days of message history to delete (0–7). Default: 0. |
/unban
Unban a user by username or ID.
Usage
/unban <user> [reason]Options
| Option | Type | Required | Description |
|---|---|---|---|
user | String | Yes | Username (e.g. shivy) or user ID of the banned user. |
reason | String | No | Reason for the unban. Max 512 chars. |
/kick
Kick a member from the server.
Usage
/kick <user> [reason]Options
| Option | Type | Required | Description |
|---|---|---|---|
user | User | Yes | The member to kick. |
reason | String | No | Reason for the kick. Max 512 chars. |
/warn
Warn a member. Auto-bans for 7 days at 3 warnings.
Usage
/warn <user> [reason]Options
| Option | Type | Required | Description |
|---|---|---|---|
user | User | Yes | The member to warn. |
reason | String | No | Reason for the warning. Max 512 chars. |
/warns
View all warnings for a member.
Usage
/warns <user>Options
| Option | Type | Required | Description |
|---|---|---|---|
user | User | Yes | The member whose warnings you want to view. |
/warn to issue a warning./mute
Give a member the Muted role to restrict them from chatting.
Usage
/mute <user> [reason]Options
| Option | Type | Required | Description |
|---|---|---|---|
user | User | Yes | The member to mute. |
reason | String | No | Reason for the mute. Max 512 chars. |
Make sure your Users role (or any member role) does not have Send Messages set as an explicit ✅ allow in channel overwrites. Leave it neutral (grey) — the base role permission is enough. If a role has an explicit allow, it will override the mute.
/unmute
Remove the Muted role from a member.
Usage
/unmute <user> [reason]Options
| Option | Type | Required | Description |
|---|---|---|---|
user | User | Yes | The member to unmute. |
reason | String | No | Reason for the unmute. |
/timeout
Discord-native timeout (communication disabled) for a specified duration.
Usage
/timeout <user> <duration> [reason]Options
| Option | Type | Required | Description |
|---|---|---|---|
user | User | Yes | The member to timeout. |
duration | String | Yes | How long to timeout for. Examples: 10m, 1h, 7d. |
reason | String | No | Reason for the timeout. Max 512 chars. |
/clear
Bulk delete messages from the current channel.
Usage
/clear <amount> [user]Options
| Option | Type | Required | Description |
|---|---|---|---|
amount | Integer | Yes | Number of messages to delete (1–100). |
user | User | No | Only delete messages from this specific user. |
/impersonate
Send a message in chat appearing as another user via webhook.
Usage
/impersonate <user> <message>Options
| Option | Type | Required | Description |
|---|---|---|---|
user | User | Yes | The user to impersonate (cannot be a bot). |
message | String | Yes | The message content to send. Max 2000 chars. |
/giveaway
Create and manage giveaways in your server.
Subcommands
/giveaway start
Start a new giveaway.
/giveaway start <duration> <prize> [winners] [channel]| Option | Type | Required | Description |
|---|---|---|---|
duration | String | Yes | How long the giveaway runs. Examples: 30m, 1h, 7d. Minimum: 1 minute. |
prize | String | Yes | What to give away. |
winners | Integer | No | Number of winners (1–20). Default: 1. |
channel | Channel | No | Channel to post the giveaway in. Default: current channel. |
/giveaway end
End an active giveaway early and pick winners immediately.
/giveaway end <id>/giveaway reroll
Reroll the winners for a finished giveaway.
/giveaway reroll <id>/giveaway view
View all active giveaways in this server with entry counts and time remaining.
/giveaway view/giveaway clear
Delete all giveaway data and reset IDs. Owner only.
/giveaway clear/welcome
Configure automatic welcome messages for new members.
Subcommands
/welcome set
Set the welcome channel and optional custom message.
/welcome set <channel> [message]| Option | Type | Required | Description |
|---|---|---|---|
channel | Channel | Yes | The channel to send welcome messages in. |
message | String | No | Custom welcome text. Use {user} and {server} as placeholders. |
/welcome autorole
Set a role to automatically give to every new member on join. Leave role empty to disable.
/welcome autorole [role]| Option | Type | Required | Description |
|---|---|---|---|
role | Role | No | Role to assign on join. Omit to disable auto-role. |
/welcome disable
Disable welcome or leave messages in this server.
/welcome disable <type>/welcome status
View the current welcome, leave, and auto-role configuration.
/welcome status/logs
Configure logging channels for different event types.
Subcommands
/logs set
/logs set <type> <channel>| Log Type | What it logs |
|---|---|
staff-logs | Bans, kicks, mutes, warns, badge actions, emoji steals |
message-logs | Message deletes, edits, clears, impersonations |
bot-logs | Giveaway start/end/reroll, bot activity |
voice-logs | Voice channel join, leave, move events |
invite-logs | Invite creation and deletion |
/logs remove
Remove the logging channel for a specific type.
/logs remove <type>/logs view
View all currently configured log channels.
/logs view/steal
Copy a custom emoji from another server into this one.
Usage
/steal <emoji> [name]Options
| Option | Type | Required | Description |
|---|---|---|---|
emoji | String | Yes | Paste the custom emoji (e.g. <:name:id> or <a:name:id>). |
name | String | No | Override the emoji name (2–32 chars). |
/ticket
Set up and manage the ticket support system for your server.
Subcommands
/ticket setup
Post the ticket panel and configure settings. Re-running will update an existing config.
/ticket setup <channel> <category> <staff_role>| Option | Type | Required | Description |
|---|---|---|---|
channel | Channel | Yes | Text channel where the ticket panel will be posted. |
category | Channel | Yes | Category under which new ticket channels are created. |
staff_role | Role | Yes | Role that can view and manage all tickets. |
Members click one of 4 buttons on the panel: Support, Report, Apply, or Appeal. A private channel is created (e.g. ticket-0001) visible only to the member, staff role, and the bot. Tickets can be closed by the owner, staff, or an admin — with a confirmation step.
/badge
Manage badges that appear on user profile cards. Bot owner only.
Subcommands
/badge create
/badge create <name> <emoji_id>Create a new badge using a Discord emoji ID.
/badge delete
/badge delete <id>Delete a badge by its numeric ID. Also removes it from all users.
/badge give
/badge give <user> <id>Give a badge to a user. It will appear on their profile card.
/badge remove
/badge remove <user> <id>Remove a badge from a user.
/badge list
/badge listList all created badges with their IDs and emoji previews.
/debug
Internal diagnostics and debug tools. Bot owner only.
Usage
/debug/servers
List all servers the bot is in, sorted by member count. Bot owner only.
Usage
/servers/announce
Send an announcement as the bot with optional image, title, and style.
Usage
/announce [message] [image] [title] [channel] [style]Options
| Option | Type | Required | Description |
|---|---|---|---|
message | String | No | Announcement text. Max 2000 chars. |
image | Attachment | No | Image to attach. Appears above the text. |
title | String | No | Title for the embed. Max 256 chars. Ignored in plain style. |
channel | Channel | No | Channel to send to. Defaults to current channel. |
style | Choice | No | embed (default) or plain message. |
message or image must be provided.