Documentation

Everything ORIN can do, explained. Commands use the default prefix , — yours may differ, and most also work as slash commands.

Introduction

ORIN is an all-in-one Discord bot. It tracks invites, voice time and messages, shows them on leaderboards, rewards members with points and roles, runs giveaways, automates the boring parts of running a server, and gives your moderators a full toolkit.

Features that store data about your members need Premium and carry a Premium badge in these docs. Everything else is free on every server. See the full command list for exact usage.

Add ORIN & permissions

Use the invite link, pick your server and approve the permissions. The easiest setup is Administrator. If you'd rather be specific, this is what each feature needs:

FeaturePermissions needed
EverythingView Channels, Send Messages, Embed Links, Read Message History, Attach Files, Use External Emojis
Invite trackingManage Server (to read invite uses)
Reward roles, auto roles, role tools, quarantineManage Roles
Ban / kick / mute / nickBan Members, Kick Members, Moderate Members, Manage Nicknames
Purge toolsManage Messages
Lock / hide / channel toolsManage Channels
Voice moderationMove Members, Mute Members, Deafen Members
Steal emojis & stickersManage Expressions

Role position matters. ORIN can only give, remove or act on roles that are below its own highest role. Drag the ORIN role above your reward roles in Server Settings → Roles.

Prefix & slash commands

The default prefix is ,. You can also mention ORIN — and mention it on its own to see the prefix. Most commands also exist as slash commands: type / to browse them. Fun commands are prefix-only.

# show this server's prefixes
,prefix
# change it (Manage Server) — you can set several, up to 5
,prefix set !
,prefix add ?
,prefix remove ?
,prefix reset

Free & Premium

ORIN stays in your server on the free plan: all General and Moderation commands that don't store data work. Premium unlocks the rest. When a server's Premium ends, the bot stays, your data is kept, and everything comes back the moment you renew. The server owner gets a DM 3 days and 3 hours before it ends. Compare plans →

Invite tracking Premium

On every join, ORIN works out which invite was used — including limited-use invites and vanity URLs — and credits the inviter. Accounts younger than your chosen age count as fake (default 7 days), and members who leave and rejoin within 7 days are recognised as rejoins so nobody is counted twice. An inviter's total is joins minus leaves minus fakes plus any bonus.

# where the join / leave messages go
,setjoinchannel
,setleave
# how young an account must be to count as fake
,setaltthreshold
# look people up
,invites @user
,inviter @user
,invited @user
,inviteinfo @user
# reward roles for reaching invite counts (setup wizard)
,setinviterole
,viewinviteroles
# adjust counts
,addinvites
,removeinvites
,clearinvites

Voice tracking Premium

Time spent in voice is tracked per member and split into unmuted, muted and deafened, with daily, weekly, monthly and all-time totals. Numbers are live — someone in a call right now already shows their current time. Reward roles can be earned by total voice time.

,vcstats @user      # full breakdown
,dv @user          # today
,wv @user          # this week
,setvoicerole      # reward-role wizard (up to 25 roles per threshold)
,viewvoiceroles
,addvctime         # add time manually
,clearvoice        # reset everyone or one user

Message tracking Premium

ORIN counts how many messages each member sends — never what they say — with daily, weekly, monthly and all-time totals and role rewards for message milestones.

,messages @user     # total
,dm @user           # today
,wm @user           # this week
,setmessagerole     # reward-role wizard
,addmessages
,removemessages
,clearmsgs

Blacklists Premium

Keep channels, categories or people out of the numbers. Blacklisted voice channels and message channels simply don't count, and a blacklisted category or user is ignored everywhere.

# messages
,blacklist channel add #spam
,blacklist category add Staff
,blacklist user add @user
,blacklistedchannels
# voice
,vcblacklistchannel
,vcblacklistcategory
,vcblacklistuser
,vcblacklistedchannels

Reset times Premium

Daily, weekly and monthly totals reset on a schedule you choose. All times are UTC. Use voice, message or all to set both trackers together.

,setresettime daily<voice|message|all>   <hour 0-23>
,setresettime weekly<...>  <day 0-6 or name> <hour 0-23>
,setresettime monthly<...> <day 1-28> <hour 0-23>

# examples
,setresettime dailyall 0           # midnight UTC, both trackers
,setresettime weeklyvoice monday 0
,setresettime monthlymessage 1 0

Leaderboards & live leaderboards Premium

Show the top members for invites, voice, messages or points. A live leaderboard is a message that keeps updating itself in a channel — create one per board and timeframe (needs Manage Server, up to 10 per server).

,leaderboard invites
,leaderboard voice          # also: dailyvoice, weeklyvoice
,leaderboard messages       # also: dailymessages, weeklymessages
,leaderboard points

# self-updating boards
,createlivelb #leaderboard voice daily
,showlivelbs
,deletelivelb #leaderboard

lb is a short form of leaderboard (for example lb voice, lb messages or lb i for invites). Use togglemention to switch between usernames and mentions in the boards.

Points & rewards Premium

Members earn points from messages, voice time and invites using the rates you set. Points have their own leaderboard, history and optional role requirements, and members can send points to each other.

# members
,points                    # your balance
,points profile @user
,points history @user
,points transfer @user 50

# admins: how points are earned
,points message enable 1 10       # 1 point per 10 messages
,points voice enable 1 5          # 1 point per 5 minutes
,points invite enable 5           # 5 points per invite
,points rate                      # show current rates
,points setvalue coins 100        # name the currency and its ratio
,points setrole message           # require roles to earn from a source

Giveaways Premium

Start a giveaway with a guided setup. Optional requirements — a role, a number of messages, voice time or invites — turn entry into a button that checks them automatically, so nobody has to prove anything by hand.

,giveaway start
,giveaway end
,giveaway reroll
,giveaway edit        # prize, winner count or end time
,giveaway setimage
,giveaway setthumbnail

Greet & farewell Premium

Create named greetings and farewells, each with its own channel, message, optional welcome image card and auto-delete timer. Test them before they go live.

,greet create welcome Welcome {user} to {servername}!
,greet channel set welcome #welcome
,greet card welcome        # toggle the image card
,greet style welcome       # cycle card styles
,greet test welcome
,greet enable welcome

,farewell create bye Goodbye {username}
,farewell channel set bye #goodbyes

Use ,variables to see every placeholder you can put in messages.

Custom roles & custom VCs Premium

Let trusted members hand out a role — or pull a friend into voice — with a single word.

,customrole create @VIP VIP     # then  ,VIP @user  toggles the role
,customrole reqrole @Staff      # who may use it
,customvc create #duo-vc duo    # then  ,duo @user  drags you both in
,customrole list
,customvc list

Auto responders, reactors & roles Premium

Auto responders reply to trigger words, auto reactors add emoji reactions, and auto roles give new members roles the moment they join — separately for humans and bots.

,autoresponder add              # setup wizard
,autoresponder show
,autoreact add
,autorole humans add @Member
,autorole bots add @Bot
,autorole enable

Embed & container builders Premium

Build rich messages with a live editor, save them as templates, export and import them, and send them to any channel. Sticky messages keep a message at the bottom of a channel.

,embed create rules
,embed send rules #rules
,container create welcome
,sticky add info Read the pinned rules!
,sticky channel add info #general

Moderation basics

Free on every server. Role hierarchy is always respected: you can't act on someone whose highest role is equal to or above yours, and the server owner is untouchable.

,ban @user [reason]
,kick @user [reason]
,mute @user 10m [reason]       # timeout, up to 28 days
,unmute @user
,unban 123456789012345678
,lock #channel    ,unlock #channel
,hide #channel    ,unhide #channel
,slowmode 10s #channel          # or: off
,clear 50                     # bulk-delete the last 50 messages
,snipe                        # last deleted message

Purge tools

Clean up exactly what you mean to: clear removes recent messages, and variants filter by what they contain — clear bots, clear image, clear files, clear mentions, clear emoji, clear embed, clear reactions, clear contain and clear user. Most take an amount, e.g. clear user @someone 30.

Warnings Premium

Warn members and keep a numbered case for each warning. The member gets a DM (a closed DM never blocks the warning), and anyone can check their own warnings.

,warn @user spamming links
,warnings @user
,unwarn 12            # remove case #12
,clearwarns @user

The permission system Premium

Give a specific user or role specific moderation permissions through ORIN — chosen one by one, without giving them the real Discord permission. Only Administrators can manage grants. In slash commands the permission box is a searchable dropdown: start typing, and add a comma to pick several.

PermissionUnlocks
banban, softban, unban, unbanall
kickkick
mutemute, unmute
warnwarn, warnings (others), unwarn, clearwarns
messagesclear, purgeuser, purgebots (the purge tools)
channelslock, hide, nuke, slowmode, channel tools
rolesrole, rrole, quarantine
nicknamesnick
emojissteal, deleteemoji, deletesticker
vcmute / vcdeafen / vcmovethe matching voice moderation commands
allevery permission above
/permission grant   permission: ban,kick   role: @Moderators
,permission grant ban,kick @Moderators
,permission revoke kick @Moderators
,permission list
,permission check @user      # what can this member do, and why
,permission reset confirm

A grant only passes the "may you use this command" check. Role hierarchy still applies to the people you grant it to, and ORIN still needs the real Discord permission to carry the action out.

Quarantine Premium

Move a member into a restricted role and channel, remembering their previous roles so everything is restored when the quarantine ends or is removed. Quarantines can be timed.

,quarantine setup                 # choose the role and channel
,quarantine add @user 1h reason
,jail @user 1h reason             # shortcut for quarantine add
,quarantine remove @user
,quarantine show

Voice moderation

Handle voice channels without opening the member list: kick, mute, deafen, move or pull one member — or everyone in a channel — and lock or hide a voice channel.

,vckick @user       ,vcmute @user       ,vcdeafen @user
,vcmove @user #lounge
,vcpull @user                   # pull them into your channel
,vclock    ,vcunlock    ,vcprivate    ,vcunprivate
,vckickall   ,vcmuteall   ,vcmoveall #from #to

Managing commands Premium

Decide where and how each command works: switch whole modules or single commands on and off, per channel; add cooldowns; restrict a command to a role; or silently ignore a user or channel.

,disable module invites #general
,enable command ban
,managecommands cooldown ban 10
,managecommands restrict ban @Moderators
,ignore user @user
,ignore channel #bot-spam
,ignore list

Troubleshooting

The bot doesn't reply to commands

Check the prefix with @ORIN (mention it on its own), make sure it can View Channel and Send Messages there, and that the command or module wasn't disabled for that channel.

It says a feature needs Premium

That feature stores data, so it's part of Premium. See Premium.

Reward roles aren't being given

Move ORIN's role above the reward roles and give it Manage Roles.

Invites aren't being counted

The bot needs Manage Server to read invite uses. Joins that happen while the bot is offline can't be attributed.

Still stuck?

Ask in the support server — we're happy to help.