Documentation

Octera works with slash commands (/command) and text commands using your server prefix (default .). Almost everything is also configurable from the web dashboard.

Tip: type .help <command> (e.g. .help ban, .help eco) for what a command does plus real examples — or .help <category> for a whole section. <command> help still works too.

Premium servers: the dashboard's Premium page (sidebar → Settings) shows the server's subscription at a glance — the plan, the renewal date, and who pays — with upgrade and manage buttons in the same place.

Prefix & help

/help [query]
Command menu by category — or pass a command for its usage + examples, or a category to list it.
Example: .help timeout
/prefix [set]
Show or change the text-command prefix (Manage Server).
Example: /prefix set: ?
/enable & /disable <targets>
Turn modules and/or commands on or off — multiple at once.
Example: /disable economy music warn

Moderation

/warn @user [reason]
Warn a member; adds escalation points and logs a case.
/timeout @user <duration> [reason]
Temporarily mute a member.
Example: /timeout @user 10m spamming
/kick · /ban · /unban
Standard moderation, all case-logged.
/case [id|@user]
View a specific case or a member's full history.
/modlog
Set the mod-log channel.
/unbanall run
Mass-unban everyone except a protected blacklist.
/unbanall blacklist add|remove|list
Manage that protected list — users the mass unban will never touch.
/purge <all | number | time span> [@user]
Bulk-delete messages. all wipes the channel (and locks it while it clears if it's large), a number deletes that many recent messages, or a time span (e.g. 7d, 2mo) deletes that window. Add a user to only delete their messages. Note: Discord won't let bots bulk-delete messages older than 14 days.
Example: .purge 50 · .purge 2mo · .purge all

Security

/security
Anti-nuke, quarantine role and protection info.
/quarantine @user · /release @user
Strip a member's roles and isolate them, or restore them.
/security panic on|off
Emergency lockdown — lock channels and/or quarantine new joins.
/lockdown all|channel|end
Lock every channel (or a single one) so members can't send messages — /lockdown end lifts it and restores everything.
Example: /lockdown all

Heat tracking, raid & join-gate filters, verification and captcha are configured on the dashboard.

Leveling

/rank [@user]
Show level & XP with a rank card.
/leaderboard
Top members by XP.
/xp · /level
Admin: add/remove/set a member's XP or level.
/leveling
Set the level-up channel and import levels from other bots.

Economy

/balance · /bank
Wallet, bank, and interest.
/deposit · /withdraw · /pay
Move or send coins.
/work · /crime · /rob · /daily
Earn coins. Luck (from items & trinkets) improves /crime, /rob, gathering and lootbox odds.
/farm
Tend your farm from an interactive panel — plant crops, harvest them, sell the goods and buy more plots.
/fish · /hunt · /dig · /search
Gathering minigames, each on its own cooldown — find coins and goods to sell.
/pet
Adopt a companion, keep it fed and collect coins from it every hour.
/trade @user
Offer a trade — coins and/or goods — that the other member accepts or declines.
/coinflip · /slots · /blackjack · /roulette · /highlow · /rps · /guess · /dice
Gamble your coins — eight casino games.
/economy-info guide|games
A quick guide to how the whole economy works, and every casino game with its payout. (.games still works as a shortcut.)
/shop · /buy · /sell · /use · /open
Browse the shop (buy buttons), buy/sell items, use consumables, open lootboxes.
Example: .buy lucky coin 3
/inventory · /collect · /multipliers · /rich
Items, income roles, active boosts & debuffs, and the rich leaderboard.
/eco
Admin: give/take coins or shop items, grant timed boosts, run interest.
/lootbox
Manager: surprise loot-box drops members race to open — drop one now, turn automatic drops on or off, set how often they land and what they pay (coins or XP).

Roles & members

/role <add|remove> <roles> (user or everyone) [duration]
Add or remove one or more roles for a member or everyone. A duration makes it a timed role — auto-removed when it expires.
Example: /role add roles:@VIP @Booster user:@someone duration:7d
/serverinfo
Server stats — owner, created, members, roles, channels, boosts.
/info [@user]
A member's account age, join date, roles and color.
/av [@user]
Show a user's avatar full-size.
/roles
List every role with its ID.
/dump [role]
Export the members of a role (or the whole server) to a file.
/oldest · /youngest
The member with the oldest / newest Discord account.
/clonecategory · /stylechannels · /cleanroles · /counters
Clone a category with permissions, add emoji prefixes to channels, strip role-name decoration, set up live stat channels.

Automation

/tag
Custom prefix commands written in TagScript — see the guide below.
/reactionrole sync|list|convert
Post/refresh your role menus, or convert them all between buttons / dropdown / reaction-emoji.
/embed post|list|copy|color|edit|source
Every embed tool in one command — post or list saved embeds, copy posted embeds between channels or categories, recolor every embed the bot has posted, edit one from raw JSON, or grab a message's embeds + content as JSON.
/log list
List your event-logging routes — configure logging itself on the dashboard.
/stealemoji <emoji> [name]
Add a custom emoji from another server to this one. The dashboard's Emojis page manages your whole set — upload, rename, remove, grab, and see your slot usage.

Automations (dashboard → Utilities → Automations) are "when this happens, do that" rules: pick a trigger (a message is posted, a reaction is added, a member joins, a role is added or removed), add optional conditions (channel, role, keywords, account age), then run up to 5 actions in order — send a message or DM, add or remove a role, react, delete the message, or start a thread. Start from ready-made templates like Welcomer, Keyword auto-reply and Auto-thread — up to 50 per server, free.

Auto Send (dashboard → Utilities → Auto Send) posts a recurring message on an interval or daily at a set UTC time — pick the weekdays it runs, add an optional send window, turn on flood control (skips a send while the bot's last message is still newest), or send it as an embed.

Birthdays

/birthday set <date> [year]
Save your birthday — MM-DD or YYYY-MM-DD. Add the year if you want your age celebrated.
Example: /birthday set 10-12 · /birthday set 1993-12-16
/birthday view [@user] · /birthday next
See a member's birthday, or the next 10 coming up in the server.
/birthday remove
Remove your saved birthday.
/birthday set-user @user <date>
Admin: set a member's birthday (Manage Server).

Turn on announcements on the dashboard (Utilities → Birthdays): pick the channel, customize the message and optionally hand out a birthday role for the day.

Achievements

/achievements [@user]
Your (or a member's) achievement progress — every unlocked tier and the next goal, with a link to the server's public achievements page.

Set them up on the dashboard (Achievements): turn the feature on to get a ready-made starter set, then add your own — single or tiered Bronze → Diamond goals across messages, reactions, voice time, threads, boosts, giveaway entries, shop purchases and birthdays, each with optional role rewards and unlock announcements.

Invites

/invites me · /invites user @member
How many invites you (or a member) have — with joins, leaves and fakes broken out.
Example: /invites user member: @friend
/invites leaderboard
The server's top inviters, ranked.
/invites who-invited [@member]
See who invited a member. Every join is credited automatically — any regular invite link works, no special tracked link required.

Tune it on the dashboard (Invites): ignore brand-new accounts as fakes and hand out reward roles automatically at invite milestones.

Giveaways

/giveaway start <duration> <prize> [winners]
Start a giveaway with a 🎉 Enter button, live timer and automatic winner draw — or use /giveaway create for a step-by-step wizard.
Example: /giveaway start duration: 1d prize: Nitro winners: 2
/giveaway end|reroll|cancel|delete|list
End one early, pick new winners, cancel or delete it, or list recent giveaways.

The dashboard's Giveaways editor goes further — schedule or repeat giveaways, set entry requirements and bonus entries, hand out winner roles, customize the embed and save presets.

Tickets

Create ticket panels on the dashboard (Tickets module). Members open a ticket from the panel button; staff claim and close it. On close, a transcript is saved and posted, with a View Online Transcript link to read it in the browser.

/close [reason]
Close the current ticket and save its transcript.
/ticket add|remove|blacklist|unblacklist
Staff: add or remove someone from the current ticket, or block a repeat abuser from opening tickets.

Utility

/ping
Bot latency.
/poll create|end
Post a native Discord poll members vote on right in the message, or end one early. The dashboard's Polls page creates polls too — with up to 10 answers, a custom duration and multi-select.
/voice rename|limit|lock|unlock|claim
Manage your temporary voice channel — rename it, set a user limit, lock or unlock it, or claim it if the owner left.
Example: /voice rename name: Gaming · /voice lock

Temporary voice channels (dashboard → Utilities → Voice) are join-to-create: pick one or more hub voice channels, and members who join one get their own channel next to it — deleted automatically when it empties.

Operator-only: /nuke channels, /nuke category and /restart are maintenance commands hard-locked in code to the bot operator — server staff can't run them.

Notifications

Get alerts when a creator posts. On the dashboard (Socials) add feeds for YouTube, Twitch, Kick, TikTok, Reddit (a subreddit's new posts), Podcast (new episodes from a show's RSS feed) or any Custom RSS URL — Octera posts new uploads, posts, episodes and go-lives to the channel you choose, with a custom message.

Music

Play music in a voice channel with a clean queue — no extra bot to invite. (Premium.)

Search for a song by name, or paste a link — SoundCloud, Bandcamp, a podcast, an internet radio station, or a direct audio URL. Octera reads most audio sites, and tells you where a track came from.

YouTube isn't available. YouTube blocks playback requests coming from hosting providers, which is where every Discord bot runs — so YouTube links are declined rather than played. Searching by name still works and plays from the sources above. Spotify and Apple Music links can't be played by any bot, because their audio is encrypted; send the song's name instead.

/play <song or link>
Play a track, or add it to the queue. Accepts a search, or a link from any site Octera can actually play.
/skip · /stop
Skip the current song, or stop and leave the voice channel.
/music join|controls|queue|nowplaying|loop|pause|resume
Everything else in one command — bring the bot into voice, open the button control panel, view the queue and current song, loop the track or queue, pause or resume. (Old prefix habits like .queue and .pause still work.)

Translation

Members who don't share a language can talk in the same channel. Nobody has to do anything differently: whoever wants to read a message reacts to it with the flag of their language, and Octera posts it in that language underneath.

/translate text <text> <to> [from]
Translate something once. Start typing a language and it will offer the ones it knows.
Example: /translate text text: where is the meeting to: Spanish
/translate live <from> <to>
Keep translating everything you say in this channel, until you stop or go quiet for three hours.
Example: /translate live from: Chinese to: English
/translate off
Stop translating what you say in this channel.

Flag reactions. React to any message with a flag Octera recognises and it replies with the translation. Several people reacting with the same flag still only produces one reply, and reacting with anything else does nothing.

Whole channels. On the dashboard you can pick a channel and the languages spoken in it, up to five. Octera works out which way round each message needs to go on its own, so a Spanish speaker and an English speaker can just talk. A message already in one of the listed languages is never repeated back in its own language. That suits a channel permanently split between languages; for anything occasional the flag reactions are far cheaper.

Live translation. For one person joining a conversation they do not speak. They run /translate live once and everything they type is posted in the other language as well, until they run /translate off or go quiet. A server owner can turn this off on the dashboard.

Translation runs on an outside translation service, so a server owner sets it up once on the dashboard's Translation page. Until a service is connected the page says so plainly and nothing translates. Repeat translations of the same message are served from cache and cost nothing, and you can set a monthly character limit for the whole server.

Backups

Snapshot your server's structure — roles, channels, permissions and settings — from the dashboard. A restore re-creates anything missing without deleting what's already there. Backups never include messages or chat history.

Guide: message variables

Anywhere Octera writes a message you can drop in a variable — a short {name} placeholder that fills itself in when the message actually sends. They work in welcome and goodbye messages, embeds, autoresponders, tags, auto-send, reaction-role panels, ticket panels and more — the same names everywhere.

Welcome {user.mention} to **{server}** — you're member #{server.members}!

Write them with a dot or with parentheses; both are the same: {user.name} = {user(name)}.

The member

VariableFills in with
{user}Their name
{user.mention}A real @ping
{user.name}Their username
{user.nick}Their nickname in this server (their username if they have none)
{user.id}Their Discord ID
{avatar}Their profile picture — drop this in an image or thumbnail slot
{user.color}Their name colour, e.g. #a93bf0
{user.top_role}Their highest role's name
{user.joinstamp}When they joined, as a timestamp number
{user.timestamp}When their account was created, as a timestamp number

{target} works the same way for the first person @mentioned in a command (falling back to whoever ran it) — handy in tags: {target.mention}, {target.avatar}.

The server & channel

VariableFills in with
{server}Server name
{server.members}Member count
{server.ordinal}Member count as a place — “42nd”
{server.icon}The server icon — usable in an image or thumbnail slot
{server.id}Server ID
{server.description}The server description
{channel}Channel name
{channel.mention}A clickable #channel link

Pictures from variables

Image, thumbnail, author-icon and footer-icon slots accept a variable instead of a link — so a welcome embed can show the new member's own avatar:

Put {avatar} in the thumbnail slot of a welcome embed and every joiner sees their own picture in the corner. {server.icon} works the same way.

Each of those slots also takes a normal https:// link, or an Upload… straight from your computer — Octera stores the picture and uses a permanent link, so it keeps working forever.

Good to know

Running your server: Discord quirks worth knowing

A few things in Discord behave in ways that look broken but aren't — they catch out almost every server owner at some point. None of these are caused by Octera; the fixes are all in Discord's own settings.

A username is showing the wrong colour

Discord colours a name using the highest role that has a colour. A role set to Default (no colour) is meant to be skipped, so a colourless role you keep at the top — usually to show yourself separately in the member list — should leave the colour to a lower role.

Sometimes it doesn't. Discord holds on to a role's old colour data even after the role reads as colourless, so the name stays stuck on the wrong colour.

Force Discord to re-read the role:

  1. Open Server Settings → Roles, pick the affected role, and go to Display.
  2. Set it to Solid, choose any visible colour, and save.
  3. Reopen the same role, set it back to Default (no colour), and save again.
  4. Press Ctrl + R to reload Discord.

The role now registers as genuinely colourless: it stays at the top and keeps showing members separately, and the next role down with a colour takes over the name colour.

The owner crown disappeared next to your name

The crown vanishes when one of your roles has both of these switched on at once:

To keep your own role hoisted and get the crown back:

  1. Open Server Settings → Roles and pick your hoisted personal role.
  2. Turn Administrator off for that role — leave Display role members separately on.
  3. Press Ctrl + R to reload Discord.
You lose nothing: a server owner already has every permission, so a personal role never needs Administrator. For your staff, make a separate Admin role that has Administrator turned on and Display role members separately turned off.

Guide: building tag commands

Tags are custom prefix commands you write yourself, powered by TagScript — a tiny templating language with variables, logic, math, randomness, and control blocks (delete the trigger, DM the reply, react, gate by role, attach an embed, and more). Every message variable works here too.

Create a tag

Use /tag (or the dashboard → Utilities → Tags). Give it a name and content. Members run it with your prefix, e.g. .rules.

/tag name: hello content: Hey {user(mention)}, welcome to {server(name)}! 👋

Running .helloHey @You, welcome to Octera! 👋

Variables

Every message variable works in a tag — {user.mention}, {server}, {avatar} and the rest. Tags add a few of their own:

VariableGives you
{args}Everything typed after the command. {args(1)} = first word, {args(2)} = second…
{target(mention)}The first @mention in the message (else whoever ran it) — same attributes as {user}
{uses}How many times the tag has run
{unix}Current unix timestamp

Logic, math & randomness

BlockWhat it does
{if(a==b):yes|no}Conditional. Operators: == != > < >= <=
{any(a==b|c==d):yes|no}any/or and all/and across several conditions
{math:2*(3+4)}Arithmetic (+ - * / % ^)
{random:a~b~c}Pick one at random (separate with ~ or ,)
{range:1-100}Random whole number in a range
{=(name):value}Set a variable; read it later with {name}
{lower} {upper} {replace(a,b):text} {length:text}Text helpers

Control blocks (side-effects)

BlockEffect
{delete}Delete the message that triggered the tag
{dm}Send the reply to the runner's DMs instead
{react:✅,🎉}React to the reply · {reactu:✅} reacts to the trigger
{redirect:#channel}Send the reply to another channel
{require(@Role)} / {blacklist(@Role)}Only / never allow these roles or channels to use the tag
{embed(title):Hi}{embed(description):...}Build a rich embed (title, description, color, image, thumbnail, footer, field)
{silent}Run the tag's side-effects without sending text

Worked examples

Suggestion box — deletes the command, posts a clean embed in a channel:

{delete}{redirect:#suggestions}{embed(title):💡 Suggestion from {user(name)}}{embed(description):{args}}{embed(color):#a855f7}

Coin flip with reactions:

{user(mention)} flips… **{random:Heads~Tails}**! {react:🪙}

Staff-only announce — gated by role, DMs nobody, posts to a channel:

{require(@Staff):You can't use this.}{redirect:#announcements}📢 {args}

Personalized welcome using a mention target:

{=(msg):Welcome {target(mention)} — you're member #{server(member_count)}!}{if({args}==):Mention someone to welcome them.|{msg}}
Anything you can do in a tag, you can also build visually with Message Templates and Autoresponders on the dashboard.