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:
| Feature | Permissions needed |
|---|---|
| Everything | View Channels, Send Messages, Embed Links, Read Message History, Attach Files, Use External Emojis |
| Invite tracking | Manage Server (to read invite uses) |
| Reward roles, auto roles, role tools, quarantine | Manage Roles |
| Ban / kick / mute / nick | Ban Members, Kick Members, Moderate Members, Manage Nicknames |
| Purge tools | Manage Messages |
| Lock / hide / channel tools | Manage Channels |
| Voice moderation | Move Members, Mute Members, Deafen Members |
| Steal emojis & stickers | Manage 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.
| Permission | Unlocks |
|---|---|
ban | ban, softban, unban, unbanall |
kick | kick |
mute | mute, unmute |
warn | warn, warnings (others), unwarn, clearwarns |
messages | clear, purgeuser, purgebots (the purge tools) |
channels | lock, hide, nuke, slowmode, channel tools |
roles | role, rrole, quarantine |
nicknames | nick |
emojis | steal, deleteemoji, deletesticker |
vcmute / vcdeafen / vcmove | the matching voice moderation commands |
all | every 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.
