ONYX/DOCUMENTATIONONYX // AXIS 2.4.4 ATLAS
← Back to the site

Axis Documentation

This page is built from the bot that is running right now. If a command exists in Discord, it is here.

95 Commands8 Subsystems6 Guides4 Languages
💡

Concepts

🧾 The receipt

What you get when you are sanctioned, and what it is for.

When you buy something you get a receipt. If they overcharge you later, the receipt proves what you actually paid. Without it, it is your word against theirs.

Online, when you get banned, you get nothing.

What it is

A piece of paper saying what was decided, when and why — carrying proof that the decision was already written at that moment. Meaning nobody can invent it later, or change the reason after the fact.

Why it exists

In July 2026 Discord admitted it had wrongly banned around 8,200 accounts over two months. A bug skipped human review and kept the bans in place even after its own team cleared them.

Nobody could prove anything. Not the people affected, not Discord.

That is normal for moderation: a black box.

What it does NOT say

It does not say who moderated you. That is deliberate. A receipt carrying the name of whoever decided becomes a target, and that is why almost no platform says who decided.

It says what, when and why. That is enough to argue with.

How to use it

/receipt view <id> in Discord, or the link that arrives by DM. And the same receipt can be verified without us, on your own machine.

🧩 How it knows it is you

Recognising the same person behind another account.

Someone joins your server, behaves badly, and you ban them. Ten minutes later they are back on another account.

How do you know it is the same person, if the name is different?

You don't know. You recognise.

Nobody can prove who is on the other side of a screen. What you can do is look at many things at once and see whether they tell the same story: which connection they come from, which device, which browser, what time their clock says.

None of those identifies anyone on its own. Millions of people share a browser. Together, they start to mean something.

Piece by piece, not all or nothing

It all used to be boiled down to a single mark: it either matched entirely or it matched not at all. The problem is that it changed by itself. The browser updates, you plug in a different monitor, and suddenly you no longer looked like yourself.

Now each thing is stored separately, and it can say "matches on 8 of 9".

That changes the cost of hiding. Before, changing something cheap was enough; now you have to change everything at once: another computer, another screen, another graphics card. That is not a click any more, it is money.

And not everything weighs the same. Millions of people share a time zone: it barely counts. The drawing your graphics card produces is nearly unique: that one weighs.

When the story doesn't add up

Here is the interesting part. A VPN changes the IP and nothing else.

The browser keeps telling the truth about its owner: the system clock, the language, the keyboard. If the connection says Amsterdam and the browser says a Madrid clock, Spanish, and answers in eight milliseconds, no VPN fixes that. Covering it would mean changing the settings of the whole machine.

And the operating system is never looked at. Never.

Using Linux is not suspicious: there are entire companies working on Linux. What stands out is the inconsistency, which is a behaviour, not a tool.

What it does NOT do

It does not say you are guilty. It is one signal that adds up with others, and several have to stack before anything happens. On its own it is never enough.

It does not accuse travellers or expats. A Spaniard living in the Netherlands has a Madrid clock, Spanish, and a Dutch IP — and their machine tells a coherent story. That costs nothing at all. What stands out is a machine that contradicts itself.

It stores nothing in the clear. Every piece is stored as an irreversible hash, just like the IP. The real values — your time, your language — exist for a few seconds in memory while the check runs, and leave with it. They never touch disk.

It is not a wall. Someone with money, time and determination can buy another computer. The goal was never "impossible": it is to make it cost more than it is worth.

🧯 Your server just got wrecked

The three ways to get it back, and how to know they work.

It is three in the morning. Someone with permissions has deleted eighteen channels, dropped half the roles, and left.

Tomorrow the server has to open.

What happens almost everywhere

Someone starts recreating channels by hand. They remember the names, more or less. They do not remember who could write where — and that is where it turns ugly: a private channel recreated without its permissions is a public channel full of conversations that were not for everyone.

Two days later, things are still turning up missing.

There are three answers here, and they are not the same

It is not one button, it is three, and picking the right one matters.

1 · Undo/backup undo

Rebuilds what was just broken, and only that. When someone deletes a channel, AXIS saves its whole structure at that very moment: the name, the category, the topic, and who could get in. So it comes back exactly as it was, permissions included.

The important part: it works even if that channel was in no backup at all. The channel you made yesterday afternoon comes back too.

It is the first thing to try after an attack.

2 · Restore/backup restore

Recreates whatever is missing from a backup. Useful when the damage is older than the last 24 hours, or when so much is gone that starting from the whole snapshot is simpler.

It never deletes anything that is there. It only adds what is not.

3 · Restore in full mode

On top of creating what is missing, it overwrites what was left wrong: it fixes the permissions of channels that are still there and gives everyone back the roles they had. It is the most powerful one and the only one that can break something, so it asks for confirmation and tells you first how many people it will touch.

And the part nobody else has

Every security bot says it takes backups. None of them answers this:

Can your backup actually be restored, right now, on your server?

Because a backup is not a promise: it is a file. And between having it and it working there are things that break on their own, without anyone touching anything:

someone moves the bot's role down, and it can no longer recreate half of them;
someone takes away Manage Channels "to tidy up permissions";
the server grows and creeps towards Discord's limits;
the automatic backup has not run in three weeks.

All of that gets discovered on the day of the disaster. When there is no room left.

/backup review walks your latest backup against the server as it is now and tells you what would be restored, what would not, and why. It touches nothing: it is a rehearsal, you can run it in the middle of a meeting.

And you do not have to remember to run it: it is checked automatically with every scheduled backup, and it warns you the day your recovery stops working. Not when you need it: the day it breaks.

What does NOT come back

Channels, roles, per-channel permissions, categories, emojis, stickers, server settings, webhooks, forum tags, the welcome screen, and who had which role.

Messages do NOT come back. A deleted channel takes its history with it and nobody can return that — not AXIS, not any other bot. The channel is rebuilt, not what was said inside it.

And one more thing, just in case: this does NOT stop you from being attacked. That is what the anti-nuke and the rest are for. This is what makes an attack stop being the end of the server and become a bad night instead.

📁 The case file

What you hand over when a case leaves Discord.

Someone has been harassing a member of your server for months. You warned them three times, muted them twice, and in the end you banned them. Now that member wants to report it, and asks you for what you have.

What do you hand over? Forty screenshots?

The problem with screenshots

Anyone can fake a screenshot in two minutes. And whoever receives it knows that, so it is not worth much — not for a report, not for another server asking why you banned someone, not for the person themselves swearing it never happened.

A JSON data dump fixes nothing either: that is editable with a text editor too.

What a case file is

/casefile @someone gives you a file with the whole case for that person on your server: their warnings, their sanctions with reason and date, staff notes, and the log events that involve them.

So far, that is a dump. What changes everything is what comes with it:

Every event carries its proof. Not a promise that it was in the log: a mathematical proof, about sixteen hashes long, that that specific event was inside on the day it was signed. And the signature belongs to a key whose public half travels inside the file itself.

Which means whoever receives it can verify it without asking you for anything and without trusting you. Or us.

If someone changes a comma — the reason for a ban, a date, never mind adding a sanction that never happened — the signature stops adding up. It is not that you would notice: it is that you can prove it.

What it is actually for

A serious appeal. "Show me what you are basing this on" stops being an argument about who remembers better.
A staff handover. Whoever arrives inherits the whole case, not the departing person's summary from memory.
Something that leaves Discord. Harassment, threats, fraud. What you hand over holds up outside here.

What it does NOT carry, on purpose

Other people's data. A case file is about one person. Anyone else who shows up in the same events did not ask to be in it, so their identifiers are trimmed. If the reason for a ban was "raid alongside So-and-so", what comes out is "raid alongside [another person]".

No IPs and no device fingerprints, not even hashed. They are not needed to understand a case, and their place is the system — not a file that will end up in somebody's inbox.

Who moderated. Same as in the receipt, and for the same reason: a document carrying the name of whoever made the decision turns that person into a target. What comes out is what was decided, when, and why. That is enough to argue about.

What it does NOT prove

It proves what was decided, when, and that it was in the log. It does not prove the decision was right.

That difference matters, and it is written inside the file itself so it travels with it: whoever receives it must know what they are looking at without being told by the person handing it over.

One detail

The case file is verified before it is given to you, and the result is stated plainly. Handing over one that does not verify would be worse than handing over nothing: the recipient would trust something broken.

And exporting a case file goes on the record, with who did it and when. It is sensitive material; keeping count is part of treating it as such.

👤 Your profile and badges

The friendly side: what it shows, what it never shows, how it is earned.

Almost everything AXIS does looks at people with suspicion: risk, evasion, sanctions. This is the opposite.

/profile pulls up a public card for a member. Their avatar, how long they have been around, whether they are verified, and the badges they have earned.

Hard rule: only the good stuff shows

The card is public — it is posted in the channel and anyone can see it. So it never carries warnings, sanctions, cases, or any risk score.

That is not an oversight or something still to do: it is the rule. Showing in a channel that someone has three warnings is pointing at a person in front of people they know, and no amount of pretty design fixes that. Moderation data stays in /user, /warnings and /history, which are for staff.

There is an automated test that blows up if moderation data ever leaks into the card. In all four languages.

The badges

They are earned on their own by what you do in the server. Nobody has to grant them:

Verified — you went through the portal
Veteran — at 30 days, then at 6 months, a year, and two years
Clean record — verified and with no warnings
Vouched for — another community stands behind you
Booster — you boost the server with Nitro
Pioneer — you were here in the server's first week
Staff — you have moderation permissions

/badges lists them all with what each one takes, and ticks the ones you already have. On the card, the ones you are missing appear dimmed: that way you can see at a glance that there is more, and how to get it.

The ones that can no longer be earned are not offered. Pioneer was for the server's first week and that week has passed; presenting it as pending would be misleading.

The credentials

Below there is a bar of five. It used to be called "trust" and nobody understood it: people expected it to measure popularity or how much someone talks, and a well-loved regular came out low.

It does not measure that. It measures what has been verified about the account, and now it says so with its five pieces in plain sight: verified, six months, one year, clean record, and vouched for. The lit ones are what you have; the dark ones, what is missing.

It is an honest label instead of a word that promised something else.

What it does NOT measure

It does NOT measure activity or popularity. Someone who has been posting daily for years, unverified, comes out low. That is not a bug: the bar talks about what can be checked, not about how much people like you.

It is NOT a ranking. There is no leaderboard and nobody competes with anybody.

When someone verifies

If you turn it on with /configure welcome, the card of whoever just verified is posted on its own in the channel you pick. It is the first thing that server says to someone who just arrived, and it says something good.

📓 The notebook and its photos

How we prove the log has not been rewritten.

Picture a notebook where the bot writes down everything it does.

1. The pages are stitched together

Each page carries the fingerprint of the one before it. Tear one out and it shows: the next page points at something that is no longer there.

2. Every hour we take a signed photo

The photo says how many pages the notebook has and what its fingerprint is. It is signed, so it cannot be retouched.

3. The photos are kept in someone else's house

They are published somewhere that is not this server. Even if someone got in here and burned the notebook, the photos are still outside — and the dates on them were set by somebody else.

4. A SINGLE page can be proved

Without showing the whole notebook. That is what lets your receipt prove itself without carrying anybody else's sanctions inside it.

What it does NOT prove

It does not cover what happens between two photos. An hour is an hour.
If somebody took both this server and the place the photos live, they could touch both. What they could not do is stay quiet about it.

How you check it

/integrity in Discord, and the same information published in the open so you can compare.

🧱 Why there is no shared blocklist

The most argued-about product decision, and why it holds.

Almost every system like this shares data between customers: get blocked on one site, get shut out everywhere. It is sold as a feature.

Why not here

Because a stranger's mistake would shut you out of a place where you have never done anything. And because one moderator having a bad day on one server should not follow you to twenty others.

What happens on one server stays on that server.

How it is built

It is not a check somebody could forget to write. The customer's identifier goes inside the calculation: two servers seeing the same connection get different values.

Cross-referencing them is not forbidden — it simply yields nothing.

What this costs

It is a decision with a price, and that should be said: someone hopping from community to community starts from zero in each one. A shared system would catch them sooner.

That price is accepted. The alternative is worse.

🏢

For companies

🏢 How a company uses this

What data crosses, what does not, and what we do NOT have.

ONYX is not a Discord bot. Discord is one of its connectors; the other one works for any site with accounts.

The question it answers

Your site asks one thing before letting somebody in:

is this visit the same person I already blocked?

And it returns a signed verdict: let them in, look at it yourself, or do not. You decide what to do with it — ONYX does not touch your site, and cannot.

The path, in four steps

1. You create a key with /keys create. Only the server owner can, and it is shown once.

2. Your server requests a check and receives a link.

3. You send the person there. Connection, browser and device get measured.

4. You ask for the result. It comes signed, with an expiry, and you can verify it without us.

What data crosses

From you to us: a reference of yours (an order number, a session id). Nothing else.
From the person: the connection and a few browser measurements. The IP is never stored in the clear — only a mark that is worthless anywhere else.
From us to you: three words. allow, review or deny.

What ONYX CANNOT do

It cannot touch your site, or block anybody on its own. It only answers.
It shares nothing with other customers. Nor could it: see "why there is no shared blocklist".
No key turns off defences or changes settings. A leaked key must be able to annoy, not to disarm.

What we do NOT have, and you should know first

This goes here and not buried, because it is what decides whether we are useful to you:

No external audit. Everything was checked by the person who wrote it.
One server and one person. No high availability, no on-call.
No SOC 2, no ISO 27001, no DPA. If your procurement requires that, today we do not pass the first filter.

What we do have is written down with all its limits in the threat model.

ONX-01

🔐 Gate

GATE

Who gets in. Verification by IP, browser fingerprint, cookie, TOR, VPN and virtual machines — what makes a ban hold after they change connection.

🔐 How verification works

One check is easy to beat. Six are not.

1 · Connection — same IP or same network block. On IPv6 the whole /64 is matched, so rotating inside it does nothing.

2 · Anonymous networks — VPN, datacenter proxy and TOR. The first thing a ban evader reaches for.

3 · Device fingerprint — new IP from airplane mode, but the same phone.

4 · Security cookie — VPN and an anti-detect browser; if the mark survived, still caught.

5 · Behaviour — fresh IP, fresh device, a bought account: nothing to recognise. But a raider acts like a raider.

6 · Discord phone verification — the only one that costs real money. You enable that in the server settings.

Shared networks

If many different accounts are seen on one IP (mobile data, a university), sharing it stops counting. There, action only follows if the device or cookie also match. Nobody gets banned for their carrier.

None of these is a perfect wall

The goal is not “impossible”. It is making evasion cost more time and money than it is worth.

/verification

🔐 Entry verification (admins only)

/verification setupSet up EVERYTHING automatically (roles, channel, perms)
modetextorequiredHow they verify
/verification enableEnable verification (existing roles)
verified-rolerolrequiredRole granted upon verification
modetextorequiredHow they verify
restricted-rolerolRole assigned on join until verified (optional)
/verification disableDisable verification
/verification publishPost a verification panel in a channel
channelcanalrequiredChannel
typetextoWhich panel (default: the verify button)
/verification vpnBlock VPN/proxy connections on the web portal
statustextorequiredon/off
/verification torBlock the TOR network (stops IP-ban evasion)
statustextorequiredon/off
/verification fingerprintDevice fingerprint: catches those who change IP but not device
statustextorequiredon/off
requiretextoBlock anyone who sends no fingerprint (turning JavaScript off was THE bypass)
/verification vmBlock virtual machines (careful: false positives, alerts only by default)
statustextorequiredon/off
/verification captchaAnti-bot captcha on the web portal (6-digit code)
statustextorequiredon/off
/verification min-ageMinimum Discord account age to verify
daysnúmerorequiredMinimum days (0 = no limit)
/verification altsWhat to do when two accounts share a connection (web portal)
actiontextorequiredAction
strict-gatetextoRemove the verified role from anyone who gets it without passing the portal
linked-accountstextoUse linked accounts (Steam, Xbox…) to catch ban evaders
anchoringtextoWait for the private network to link (avoids mobile/public false positives)
anchor-notetextoWarn the user when they verify on a public or mobile network
similaritynúmeroHow alike two devices must be to link them (75-100%)
/verification autokickKick those who don't verify in time (can rejoin)
hoursnúmerorequiredDeadline in hours (0 = disabled)
/verification block-ipBlock a user's last known IP (web portal)
userusuariorequiredUser
/verification unblock-ipUnblock a user's IP (if an IP ban caught an innocent)
userusuariorequiredUser
/verification log-channelChannel logging EVERYTHING about verification (anti-corruption)
channelcanalrequiredStaff channel
/verification forceForce a user to verify: stores ALL their roles and returns them once they pass
userusuariorequiredWho to force
even-if-verifiedsí/noForce it even if they already verified before (usually NOT needed)
/verification restore-rolesReturn their stored roles WITHOUT requiring verification (undo)
userusuarioWho to return them to (blank = to EVERYONE)
everyonesí/noReturn them to everyone who has them held
/verification forcedList whose roles are currently being held
/verification buttonsWho can press the undo buttons (server owner only)
actiontextorequiredWhat to do
userusuarioWho (not needed to view the list)
/verification networkMake IP bans reach the whole network, not just that connection
statustextorequiredon/off
/verification migrateMake long-standing members re-verify, in batches
amountnúmeroHow many in this batch. Leave it empty to migrate EVERYONE in the background
dry-runsí/noOnly show who would be affected, without changing anything
stopsí/noStops the background migration that is running
/verification reminderDM anyone who starts verification and does not finish it
minutesnúmerorequiredMinutes to wait before the reminder (0 = do not remind)
/verification blocksList blocked IPs and the known accounts on each
/verification apikeyUse THIS server’s own VPN key (its own quota, not shared)
keytextorequiredYour proxycheck.io key · “ver” to check · “quitar” to remove
/verification viewVerification status

/banip

⛔ Ban a user and ALL their multi-accounts on the same IP (anti-raid)

Options
userusuarioUser to ban by IP
idtextoOr their ID (if no longer in the server / already banned)
reasontextoReason

/reputation

🌐 Alert if a connection is blocked in other servers (never acts)

/reputation statusSee the cross-server reputation status
/reputation enableEnable cross-server reputation alerts
/reputation disableDisable cross-server reputation
/reputation thresholdIn how many servers it must be blocked to alert
serversnúmerorequiredThreshold (default 2)

/verification-code

🔑 Give a one-time code to someone who cannot log in to Discord

Options
userusuariorequiredWho you are giving it to

/review

🔎 Queue of verifications that need someone to decide

/review queueCases awaiting a decision
/review summaryCase counts and resolution outcomes
/review userCase for a specific user
userusuariorequiredWho for
ONX-02

🛡️ Shield

SHIELD

Against the server being taken down. Mass deletes and bans, role hardening, and guardian mode — which watches trusted admins too.

🛡️ When anti-nuke fires

It counts dangerous actions inside a time window

Deleting or creating channels and roles · mass bans and kicks · handing out permissions · webhooks and integrations · touching server settings · mass renaming · raid nicknames.

Default: 4 actions in 10 seconds

An admin genuinely reorganising never gets there. A nuke crosses it in the first second.

Splitting it between accounts does not work

That is the classic trick: 3 accounts × 3 deletions, none crosses its own limit. AXIS also counts the server total: if enough pile up across 2 or more people, all of them are disarmed at once.

And if Discord’s log arrives late

Discord delays the audit log exactly when there is load — that is, during a raid. So AXIS also counts the actual deletions: it fires even when the actor is unknown.

What happens to the attacker

Whatever you chose: strip their roles (default), quarantine, kick or ban. If they cannot be banned because they are above the bot, their roles are stripped anyway — disarmed on the spot instead of giving up.

/antinuke

🛡️ Anti-nuke protection for the server (admins only)

/antinuke enableEnable anti-nuke protection
/antinuke disableDisable anti-nuke protection
/antinuke actionWhat to do with the attacker
typetextorequiredMeasure
/antinuke thresholdHow many dangerous actions trigger the alarm
actionsnúmerorequiredActions (default 4)
secondsnúmeroWithin how many seconds (default 10)
/antinuke trustAdd to the trusted list: a person or a whole role
userusuarioTrusted person
rolerolWhole trusted role (e.g. @Staff) — also covers whoever joins later
/antinuke untrustRemove from the trusted list: a person or a role
userusuarioPerson
rolerolRole
/antinuke botguardWhat to do with unauthorized bots that join
modetextorequiredBan, only alert, or disable
/antinuke trust-botMark a bot as trusted (BotGuard leaves it alone)
botusuariorequiredThe trusted bot
/antinuke untrust-botRemove a bot from the trusted list
botusuariorequiredThe bot
/antinuke trusted-bot-logsLog the actions of trusted bots
statustextorequiredon/off
/antinuke guardianAlso watch trusted admins/staff (in case they get compromised)
statustextorequiredon/off
/antinuke hardening🛡️ Turn on ALL recommended protection at once (no setup)
/antinuke bot-blockBlock a specific bot from joining, by its application ID
idtextorequiredThe bot's application ID
reasontextoWhy it is blocked (so you remember a year from now)
/antinuke bot-allowRemove a bot from this server's blacklist
idtextorequiredThe bot's application ID
/antinuke bot-listBlocked bots, and a sweep of any already inside
sweepsí/noBan blocked bots that are already in the server now
/antinuke viewAnti-nuke status

/harden

🔒 Strip dangerous perms (give roles, ban, external apps) from ALL roles

Options
leveltextoHow aggressive (default: basic)
exceptrolA trusted role that KEEPS the perms (e.g. your admin role)

/protection

🛡️ How protected this server is and what you still need to do

/shadow

👁️ Shadow mode: the bot observes without punishing (for new servers)

/shadow statusSee if it is on and what the bot would have done
/shadow exitTurn off shadow mode: the bot starts acting
/shadow enterTurn shadow mode back on
hoursnúmeroHow many hours to observe

/permissions

🪜 Who holds power in the server, and who gained it lately

/permissions mapWhich roles can do damage right now
/permissions changesWhich roles gained power in the last 7 days
/permissions snapshotSave current permissions as a baseline
/permissions diffChanges since the last snapshot and available reversals

/two-person

👥 Require a second staffer to confirm an appeal unban

/two-person statusSee if the two-person rule is on
/two-person enableEnable: accepting an unban will require a second staffer
/two-person disableDisable the two-person rule
ONX-03

🌊 Surge

SURGE

Coordinated joins. Wave detection, behaviour scoring, cross-account correlation and honeypot traps. It acts on what someone does, not on being new.

🚨 I am being raided RIGHT NOW

The first 30 seconds decide it

1. /lockdown — locks the whole server. Nobody posts while you react.

2. /antinuke hardening — if it was not on, this turns everything on at once.

3. Check the alert channel: AXIS already tells you who and what they did.

4. /backup restore — rebuilds deleted channels, roles, permissions and emojis.

What AXIS already did without being asked

If anti-nuke was on, the attacker already lost their power the moment they crossed the threshold — usually in under 10 seconds.
If several coordinated accounts came, all of them are disarmed at once and the verification level is raised automatically.

Afterwards, not before

/audit verify — checks nobody touched the log.
/permissions — see who gained power lately. A raid almost always starts on the inside.

/antiraid

🌊 Anti-raid protection for joins (admins only)

/antiraid enableEnable anti-raid
/antiraid disableDisable anti-raid
/antiraid thresholdHow many joins in a row count as a raid
joinsnúmerorequiredJoins (default 8)
secondsnúmeroWithin how many seconds (default 10)
/antiraid actionWhat to do during a raid
typetextorequiredMeasure
/antiraid cooldownMinutes until the verification level restores itself (0 = do not restore)
minutesnúmerorequiredDefault 10
/antiraid viewAnti-raid status

/behavior

🎯 Catch raiders by what they DO, not their IP (admins only)

/behavior enableEnable behaviour detection
actiontextorequiredWhat to do when detected
/behavior disableDisable behaviour detection
/behavior sensitivityHow many points are needed to act (lower = more aggressive)
pointsnúmerorequired100 = balanced · 70 = aggressive · 140 = lenient
/behavior windowHow long a newcomer is watched
minutesnúmerorequiredMinutes since joining (default 30)
/behavior viewStatus and explanation of the detection

/correlation

🧩 Combine weak signals (VM + new account + behavior…) into one alert

/correlation statusSee how the correlation engine is set
/correlation thresholdPoints needed for the alert to trip
pointsnúmerorequiredThreshold (default 4)
/correlation actionWhat to do when the engine trips
typetextorequiredMeasure
/correlation enableTurn the correlation engine on
/correlation disableTurn the correlation engine off

/honeypot

🪤 Trap channels that auto-ban anyone who writes (admins only)

/honeypot enableMark a channel as a trap and post the warning
channelcanalrequiredChannel that will be the trap
/honeypot disableRemove the trap from a channel
channelcanalrequiredChannel to unmark
/honeypot actionWhat to do with anyone who writes in the trap
typetextorequiredMeasure
/honeypot viewTrap channels and current action

/lockdown

🚨 Lock the WHOLE server during a raid and reopen it exactly as it was

Options
actiontextorequiredEnable (lock) or disable (reopen)
hoursnúmeroIncident pause duration in hours (1-24, default 4)
reasontextoReason (optional)

/drill

🎯 Test your defenses: what would trip in an attack, touching nobody

ONX-04

🧯 Filter

FILTER

What gets posted. Links, mass mentions, repetition and spam, with a repeat-offence ladder and exceptions per channel and per rank.

⚖️ Why an innocent is NOT caught

The rule that governs everything

With no intent signal at all, action is NEVER taken, no matter how many context points pile up.

INTENT signals — done on purpose

75 same text as other new accounts with a link · 50 tries to mention @everyone · 45 sends an invite to another server · 35 mentions 5+ at once · 25 link in their first messages

CONTEXT signals — they only accompany

40 posts in 4+ channels in 3 min · 35 6+ messages in 30 s · 20 posts seconds after joining · 15 account under a day old · 10 no profile picture

The example that explains it

An excited fan in a busy server (8 messages in 20 s across 5 channels, new account, no picture) reaches 505 points… and nothing happens, because they did nothing wrong.
The raider with an invite and mentions adds up to 130 with intent and is caught.
Points decide when. Intent decides whether.

And if it still gets it wrong

Everything is reversible and logged: /unisolate, /verification unblock-ip, and the appeal system with a button for staff.

/automod

🤖 Configure the automod (admins only)

/automod enableEnable a filter
filtertextorequiredFilter
/automod disableDisable a filter
filtertextorequiredFilter
/automod actionWhat to do when an infraction is detected
typetextorequiredAction
/automod limitsMention and uppercase thresholds
mentionsnúmeroMax mentions per message (default 5)
uppercasenúmeroMax % of uppercase (default 70)
spamnúmeroMax messages in a row within 7s (def. 10)
forget-afternúmeroHours without infractions before the counter resets (def. 24)
/automod ladderWhat happens to repeat offenders: escalating punishment per infraction
recommendedsí/noApply the recommended ladder (3→10min, 5→1h, 8→24h)
clearsí/noClear it: automod goes back to warning only
/automod stepAdd or remove a step from the ladder
infractionsnúmerorequiredHow many infractions it triggers at
actiontextoWhat to do when reached
minutesnúmeroMute duration in minutes
removesí/noRemove this step
/automod exceptionFree a channel from one filter (e.g. a spam channel)
channelcanalrequiredThe channel (or category) to free
filtertextoWhich filter it is freed from (default: spam only)
removesí/noFilter this channel again
/automod exemptWho is exempt from the filters: by rank and by individual roles
systemtextoWhich system
fromtextoThis rank and above are exempt
rolerolAn individual role that is also exempt
remove-rolesí/noRemove that role from the list instead of adding it
/automod viewShow the automod status

/escalation

⚡ Auto-punishments by number of warnings (admins only)

/escalation addAdd a step (e.g. 3 warns → mute)
warningsnúmerorequiredAt how many warnings
actiontextorequiredWhat to do
minutesnúmeroMute minutes (only for "Mute")
/escalation viewView the current ladder
/escalation clearClear the whole ladder

/automod-discord

🛡️ Native Discord AutoMod rules: view, create, test and undo

/automod-discord listNative rules configured for this server
/automod-discord testPreview how a rule would handle a message
ruletextorequiredRule name or ID
messagetextorequiredText to test
/automod-discord wordsCreate a blocked-word rule
nametextorequiredName for the rule
listtextorequiredComma-separated words. Wildcards supported: scam*, *scam, *scam*
allowedtextoComma-separated exceptions
alert-channelcanalChannel for triggered-rule alerts
/automod-discord clearDelete a native rule
ruletextorequiredName or ID
/automod-discord historyWho changed what, including previous values
ONX-05

📓 Ledger

LEDGER

The evidence. Every action hash-chained, with a copy of deleted messages and their files. Deleting it does not erase it.

👁️ Protection from your own staff

The uncomfortable part

Almost every bot protects the server from outsiders. But a good share of disasters are caused by someone who already had permissions: a stolen admin account, or a moderator who turns.

Guardian mode

/antinuke guardian on — anti-nuke watches trusted admins too, with a higher threshold. An admin working normally does not trip it; one mass-deleting or mass-banning does. The owner is never touched.

A log that cannot be tampered with

Every event carries the signature of the previous one, chained. If someone edits or deletes a row straight in the database, the chain stops adding up and it shows. Any admin checks it with /audit verify.

Two-person rule

/two-person — the most dangerous actions need two different people to confirm. Whoever proposes one cannot approve it.

Permission drift

/permissions — who can do damage right now and who gained power lately. It compares snapshots, so it catches changes made even while the bot was down.

Verified by hand

If someone with permissions grants the verified role to an account that never passed the portal, an alert fires — and with the strict gate, it is undone automatically.

/configure

⚙️ Configure the security bot (admins only)

/configure co-ownerTreat someone as the server owner for the bot (if the real owner never logs in)
actiontextorequiredWhat to do
userusuarioWho (not needed to view the list)
/configure mod-roleRole with access to moderation commands
rolerolrequiredModerators role
/configure admin-roleRole with full access (like administrator)
rolerolrequiredAdministrators role
/configure helper-roleHelpers role (can use /say, cannot sanction)
rolerolrequiredHelpers role
/configure log-channelChannel where moderation actions are logged
channelcanalrequiredLogs channel
/configure config-channelChannel where every settings change is recorded (no channel = use the log channel)
channelcanalStaff channel (leave empty to go back to the log channel)
/configure alert-channelChannel for security alerts (anti-nuke/anti-raid)
channelcanalrequiredAlerts channel
/configure report-channelChannel where /reportar arrive
channelcanalrequiredReports channel
/configure welcomeChannel where the profile card appears on verification (no channel = disable)
channelcanalWelcome channel (leave empty to disable)
/configure milestonesChannel where veteran tier-ups are announced (no channel = off)
channelcanalMilestones channel (leave empty to turn it off)
/configure report-roleRole pinged on reports (helper/staff)
rolerolrequiredRole to mention
/configure transcript-channelChannel where transcripts are saved (/transcript)
channelcanalrequiredChannel
/configure auto-transcriptAutomatic transcript when a ticket closes (even from another bot)
statustextorequiredon/off
categorycanalTicket category
category2canalAnother ticket category
category3canalAnother ticket category
category4canalAnother ticket category
category5canalAnother ticket category
prefixtextoChannel name prefix if you do not use categories (default: ticket)
/configure appeal-channelChannel where staff review ban appeals
channelcanalrequiredChannel
/configure voice-logsLog voice channel joins/leaves (can be noisy)
statustextorequiredon/off
/configure weekly-summaryPost an automatic weekly summary
statustextorequiredon/off
/configure warn-limitAuto-mute upon reaching N warnings (0 = off)
amountnúmerorequiredNumber of warnings (0-20)
/configure log-levelHow much is sent to the logs channel
leveltextorequiredMinimum to log in the channel
/configure languageServer language (portal & verification; panel rolling out)
languagetextorequiredMain language
/configure no-log-channelDisable logging in specific channels (server owner and co-owners only)
actiontextorequiredWhat to do
channelcanalChannel to exclude or re-include (not needed to view list)
/configure viewView the server's current configuration

/audit

🔗 Check the audit log has not been tampered with

/audit verifyVerify the integrity of the audit chain

/transcript

🎫 Save this channel's history to a file (great for tickets)

/transcript createSave a channel's history to a clean web page
amountnúmeroHow many messages to save (max 500)
channelcanalChannel to save (defaults to this channel)
/transcript viewView a saved transcript by its identifier
idtextorequiredTranscript ID (e.g. t639e4e9...)
/transcript listList recent saved transcripts in this server
limitnúmeroNumber of transcripts to list (max 25)
/transcript searchSearch transcripts by channel name or user
texttextorequiredText to search (channel name, ID or user)

/snipe

🔍 Show the last deleted message in this channel

ONX-06

💾 Recall

RECALL

Going back. Encrypted copies of channels, roles, permissions, bans and settings, and the restore that puts them back by name.

/backup

💾 Backups of the server structure (admins only)

/backup createCreate a backup of roles and channels now
/backup listList saved backups
/backup restoreRecreate missing roles/channels from a backup
numbernúmerorequiredBackup number (see /respaldo listar)
fullsí/noAlso fixes permissions on existing channels and gives roles back (OVERWRITES things)
/backup reviewRehearse the recovery without touching anything: could your backup be restored?
/backup undoRebuild the channels and roles deleted in the last 24 hours
/backup autoAutomatic backup every 6 hours
statustextorequiredon/off
ONX-07

🔍 Trace

TRACE

Investigating. A full dossier on a member: who invited them, their alts, their name history and everything they have done.

/user

🔎 Show a user's info and risk level

Options
userusuarioUser (default: you)

/history

📚 Show a user's moderation history

/history viewShow a user’s moderation history
userusuariorequiredUser
/history clearClear a member’s record (who did it stays on the log)
userusuariorequiredUser
everythingsí/noTheir warnings and staff notes too

/warnings

📋 Manage a member's warnings

/warnings viewView a user's warnings
userusuariorequiredUser
/warnings removeRemove a warning by its ID
idnúmerorequiredWarning ID
/warnings clearDelete ALL warnings of a user
userusuariorequiredUser

/watchlist

👁️ Watch a user: get notified when they do something

/watchlist addAdd a user to the watchlist
userusuariorequiredUser to watch
/watchlist removeStop watching a user
userusuariorequiredUser
/watchlist viewList of watched users

/note

🗒️ Internal staff notes about a member

/note addAdd a note to a member
userusuariorequiredUser
texttextorequiredNote content
/note viewView a member's notes
userusuariorequiredUser
/note removeRemove a note by its ID
idnúmerorequiredNote ID
ONX-08

📡 Relay

RELAY

What goes out. Webhook inventory and purge, staff alerts and announcements — the only way to cut a leaked URL.

🔒 What data AXIS keeps

What AXIS cannot see

Your private messages · other servers · what you say in voice (Discord gives bots no audio) · your screen, camera or files · your Discord password · your phone, email, age or ID.

What is stored, and for how long

Sanctions and records — for as long as the bot is in the server.

A hash of your connection (web portal only) — 90 days, then deleted automatically. It is an irreversible hash: good for comparing, but your IP cannot be recovered from it.

Edited or deleted messages — logged for auditing. A message nobody touches is not stored.

What is never done

No selling or sharing data · no training artificial intelligence on your server · bans are NOT spread to other servers · which servers use AXIS is never published (that list would be a map of targets for anyone looking to attack).

Check it yourself

/my-data — everything about you, sent to your DMs. There is no “user-facing” version and a real one.
/delete-my-data — requests deletion of what can be deleted. The connection hash and sanctions in force cannot: if they could, the right to be forgotten would be a button for dodging bans.

/webhooks

🪝 View and delete the server's webhooks (admins only)

/webhooks listEvery webhook in the server, and who created it
/webhooks purgeDelete webhooks: the only way to kill a leaked URL
channelcanalOnly this channel's (otherwise the whole server)
confirmsí/noRequired: confirm you want them deleted

/twitch

📺 Announce in a channel when a streamer goes live on Twitch (admins)

/twitch configureSet up the live notification
streamertextorequiredTwitch username (e.g. danirep)
channelcanalrequiredChannel to announce in
rolerolRole to ping (optional)
messagetextoExtra announcement text (optional)
/twitch testCheck the setup and post if live right now
/twitch disableStop announcing streams
/twitch viewTwitch notification status

/announce

📡 Send an update to subscribed servers (bot owner only)

Options
messagetextorequiredWhat to announce (use \n for line breaks)
titletextoAnnouncement title (optional)

/updates

📢 Get announcements (new features and security notices)

/updates channelChoose where to receive bot updates
channelcanalrequiredChannel to post them in
/updates disableStop receiving updates
/updates viewSee if this server receives updates
···

Commands

/warn

⚠️ Give a warning to a member

Options
userusuariorequiredUser to warn
reasontextorequiredWarning reason

/isolate

🚧 Isolate a member: removes all roles, leaves only "Isolated"

Options
userusuariorequiredUser to isolate
reasontextoReason

/reach

🔑 Who can read your private channels, and since when

/seniority

🕰️ Recover how long you have really been here, even if you left and came back

/seniority viewInvestigate how long someone has really been here and since when it is on record
userusuarioWhose (yours by default)
/seniority setSet someone's join date, time or rank (staff only)
userusuariorequiredWho
datetextoDate in YYYY-MM-DD format (UTC)
timetextoTime in HH:MM format (UTC, defaults to 00:00)
ranknúmeroHistorical rank number

/atlas

🗺️ Community, suggestions and moderation teamwork without noise

/atlas accountYour moderation activity, visible only to you
/atlas suggestSend a suggestion without posting or mentioning anyone
texttextorequiredWhat you suggest and why
notify-mesí/noReceive one DM when the team replies (default: no)
/atlas my-suggestionsView your suggestions and their replies
/atlas queueSuggestions and pending team work
/atlas resolveReply to a suggestion without posting anything
idtextorequiredSuggestion ID
decisiontextorequiredWhat the team decided
responsetextoShort explanation for the member
/atlas shift-startPrivately show the team that you are available
/atlas shift-endEnd your shift without channel announcements
/atlas shiftsWho on the team is available now

/automate

⚙️ Chores that would take a whole afternoon, done in one go

/automate verificationClose EVERY channel to unverified people, in one pass
verifiedrolrequiredThe role that DOES see the channels
unverifiedrolThe role that does NOT see them (the one given on join)
memberrolBase role that does not see on its own either (three-role scheme)
public1canalChannel or category that stays VISIBLE to everyone
public2canalAnother visible channel or category
public3canalAnother one
public4canalAnother one
public5canalAnother one
privilegedtextoStaff/donor/veteran channels: by default they are not touched at all
applysí/noWithout this I only show you the plan and change nothing
/automate undoPut permissions back the way they were before the last run

/autoroles

🏷️ Automatically assign roles when a member joins the server

/autoroles addAdd a role to the welcome list
rolerolrequiredThe role that will be assigned on join
/autoroles removeRemove a role from the welcome list
rolerolrequiredThe role to remove from the list
/autoroles viewView the list of configured autoroles
/autoroles statusEnable or disable assignment without clearing the list
statustextorequiredSystem status
/autoroles clearClear all configured autoroles

/standing

🎫 Portable conduct: sign your members’ and accept outsiders’

/standing statusSee whether this server issues standing and whether it accepts it
/standing issueSign your members’ conduct so it counts elsewhere
activesí/norequiredTurn issuing on or off
/standing acceptWhat level of outside standing counts here
leveltextorequiredMinimum level, or none to not accept

/help

📚 Show all the bot commands and features

Options
commandtextoSearch a command by name (in any language)

/ban

🔨 Ban a member from the server

Options
userusuariorequiredUser to ban
reasontextoBan reason
daysnúmeroDays of messages to delete (0-7)
appealablesí/noWhether they can appeal the sanction (yes by default)

/mass-ban

⛓️ Prepare a ban of many accounts at once, with two-person confirmation

Options
userstextorequiredIDs separated by commas, spaces or line breaks
reasontextorequiredOne reason for all users
include-staffsí/noAlso include bots and staff (excluded by default)

/lock

🔒 Lock the current channel (no one can write)

Options
reasontextoReason

/delete-my-data

🗑️ Request deletion of your basic data in this server

/channel

📕 Per-channel content rules (admins only)

/channel modeSet a channel's mode
channelcanalrequiredChannel
modetextorequiredWhat is allowed
/channel removeRemove a channel's rule
channelcanalrequiredChannel
/channel viewList channels with active rules

/community

🌐 The public page of the server: board, records and badges, outside Discord

/community publishTurn the page on and give its link
/community hideTurn the page off (the link stops opening)
/community linkShow the link and the status again
/community modeWhat the page shows
whattextorequiredWhat is visible

/config-history

↩️ Config snapshots, to undo a change that broke something

/config-history saveSave a snapshot of the current configuration now
/config-history listSee the saved snapshots
/config-history restoreRoll back to an earlier snapshot
numbernúmerorequiredSnapshot number (from /config-history list)

/give-role

🎖️ Give a role to a user (mods or "Give roles" permission)

Options
userusuariorequiredUser to give the role to
rolerolrequiredRole to give
reasontextoReason

/data

🗂️ Resolve data requests (bot owner and those they authorise)

/data requestsList pending deletion requests
/data approveApprove deletion of a user's basic data
userusuariorequiredWho requested it
/data rejectReject a deletion request
userusuariorequiredWho requested it
reasontextoReason for rejection
/data authorizeAuthorise someone to resolve requests (owner only)
userusuariorequiredWho to authorise
/data revokeRemove someone's authorisation (owner only)
userusuariorequiredWhose authorisation to remove
/data authorizedList who can resolve requests
/data channelChannel where requests are posted with their buttons
channelcanalrequiredStaff channel
/data backupBackup of the bot data (verification, blocks, audit log)
actiontextorequiredWhat to do

/unisolate

✅ Remove isolation and restore saved roles

Options
userusuariorequiredUser to un-isolate
reasontextoReason

/unban

♻️ Unban a user by their ID

Options
idtextorequiredBanned user's ID
reasontextoReason

/unlock

🔓 Unlock the current channel

Options
reasontextoReason

/unmute

🔊 Remove the timeout (mute) from a member

Options
userusuariorequiredUser to unmute
reasontextoReason

/diagnose

🩺 Check security is set up right and the gate is closed

/emergency

🚨 The server is under attack: backup, webhooks, door and permissions, in order

/emergency enableRun the emergency sequence
confirmsí/noRequired: without this I only show you the plan
permissionssí/noAlso strip the dangerous permissions from every role
exceptrolRole that keeps its permissions (your admin one)
/emergency endIt is over: put the door and the permissions back

/links

🔗 Link protection: removes scams, IP loggers and porn

/links statusWhat is active right now
/links enableTurn link protection on
/links disableTurn link protection off
/links categoryWhat to do with each kind of link
typetextorequiredKind of link
actiontextorequiredWhat to do

/casefile

📁 A member’s full case file, signed and verifiable

Options
userusuariorequiredWho for

/exposure

🎯 If one account falls today, how much goes with it? The server’s real blast radius

/kick

👢 Kick a member from the server

Options
userusuariorequiredUser to kick
reasontextoKick reason

/info

👁️ Bot information, statistics and where to find us

/badges

🏅 What badges exist and how to earn them

/integrity

🔏 The state of the proofs here: log, checkpoints and mirror

/json

🧩 JSON workshop: format, compress, check and build

/json beautifyLeave a JSON pretty and tidy, with indentation
texttextoThe JSON to format
filearchivoA .json file, if it is long
indentnúmeroHow many spaces of indentation
/json minifyCompress a JSON by removing every spare space
texttextoThe JSON to compress
filearchivoA .json file, if it is long
/json checkSays whether a JSON is valid and, if not, which line fails
texttextoThe JSON to check
filearchivoA .json file, if it is long
/json createBuild a JSON by writing key = value pairs
/json embedPull the embed JSON out of a message already posted
messagetextorequiredLink to the message, or its identifier
/json sendPost an embed from its JSON (staff only)
jsontextorequiredThe embed JSON

/slowmode

🐌 Adjust the channel slow mode

Options
secondsnúmerorequiredSeconds between messages (0 = off, max 21600)

/clear

🧹 Delete recent messages from the channel

Options
amountnúmerorequiredHow many messages to delete (1-100)
userusuarioDelete only this user's messages

/keys

🔑 ONYX API keys for this server

/keys createCreate a key (shown ONCE)
nametextorequiredWhat it is for, so you recognise it later
scopetextorequiredWhat it allows
scope2textoAnother scope (optional)
scope3textoAnother scope (optional)
/keys viewThe keys of this server
/keys revokeRevoke a key for good
idtextorequiredThe id shown by /keys view

/my-standing

🎫 Your good conduct, to carry to other communities

/my-standing requestHave this server sign your conduct, to use elsewhere
/my-standing presentShow here the standing you bring from other communities
credentialtextorequiredWhat the mint gave back to you
/my-standing howHow a credential is built, step by step

/my-standing

Decide whether you appear on the public page of the server

/my-standing exitRemove me from the public page
/my-standing returnAppear on the public page again
/my-standing statusDo I appear on the page right now?

/my-data

🗂️ I DM you what data is stored about you

/panel

🔐 Link to the web security panel (staff only)

/profile

A member card: verification, veteran status, badges and endorsement

Options
userusuarioWhose profile to view (yours by default)

/ping

📶 AXIS latency and the state of its nodes

/prefix

View or change the bot text prefix (default ".")

/prefix viewShow the current text prefix
/prefix changeChange the text prefix
newtextorequiredThe new prefix (short, no spaces; e.g. . or !)

/protected

🛡️ The «Protected by AXIS» badge for this server

/protected viewWhether it meets the requirements, and what is missing
/protected claimClaim the badge (checked on the spot)
/protected removeRemove the badge from this server

/remove-role

➖ Remove a role from a user (mods or "Give roles" permission)

Options
userusuariorequiredUser to remove the role from
rolerolrequiredRole to remove
reasontextoReason

/reason

📝 Add or fix the reason of a sanction after the fact

/reason banRecord the reason of an existing ban
userusuariorequiredBanned user (by mention or ID)
reasontextorequiredBan reason

/reactionroles

🎭 Interactive reaction and button role panels

/reactionroles configOpen the visual interactive configuration panel and emoji selector
sectiontextoJump directly to a panel section
/reactionroles createCreate a new reaction roles panel
titletextoPanel title (e.g. Pick your games)
modetextoSelection mode
/reactionroles panelPublish a configured panel to a channel
channelcanalrequiredChannel where the message will be published
idtextoPanel ID (optional if you only have one)
/reactionroles viewList configured reaction role panels
/reactionroles clearDelete a reaction roles panel
idtextorequiredID of the panel to delete

/receipt

🧾 Your moderation receipt: what was decided, and proof it has not changed

/receipt viewOpen a receipt by its identifier
idtextorequiredThe identifier you received by DM
/receipt mineYour receipts on this server

/records

🏛️ Server records: the first member, the biggest day and how long we have been here

/report

🚩 Report a user to the staff team (you can attach images)

Options
userusuariorequiredUser you want to report
reasontextorequiredWhat happened?
imagearchivoProof image or video (optional)
image2archivoAnother proof image or video (optional)
image3archivoAnother proof image or video (optional)

/say

💬 Make the bot say something (logged, but sender hidden)

Options
messagetextorequiredWhat the bot will say
channelcanalChannel to send it to (default: this one)

/server

📊 Show server information and status

/setup

🧭 Set up the bot with 4 questions (start here)

/mute

🔇 Temporarily mute a member (timeout)

Options
userusuariorequiredUser to mute
durationtextorequiredDuration
reasontextoReason

/sync

🔗 Import sanctions from another bot into this one (admins only)

/sync enableChoose the trusted bot whose sanctions will be imported
botusuariorequiredThe trusted moderation bot
channelcanalChannel where that bot posts its logs (optional)
/sync disableStop importing sanctions from other bots
/sync punish-roleA punishment role that will be copied to that person's alt accounts
rolerolrequiredYour server's mute/punishment role
removesí/noStop watching this role
/sync applyExtend punishments already in place to alt accounts now
/sync viewSync status

/system

📡 ONYX subsystems on this server

/support

🔓 Who from outside may view this server — only with your permission

/support statusSee if there are requests or open access right now
/support allowGrant temporary access to whoever requested it
minutesnúmeroHow long it lasts (default 30, max 240)
/support rejectReject the pending request
/support revokeClose an access that was open, right now
/support historyEverything support has done in this server
/support modeLet them request access, or close the door completely
valuetextorequiredWhat to do with support requests

/tempban

⏳ Ban someone for a while and auto-unban on expiry

Options
userusuariorequiredUser to ban
durationtextorequiredHow long it lasts
reasontextoReason

/ticket

🎫 Ticket system: panel, types and permissions

/ticket type-createCreate a ticket type (support, report, appeal…)
nametextorequiredVisible button name
categorycanalCategory where the channels are created
staff-rolerolRole that handles THIS type (otherwise the general one)
emojitextoButton emoji
descriptiontextoOne line explaining what it is for
/ticket type-deleteDeletes a ticket type
idtextorequiredIts id (shown in /ticket ver)
/ticket panelPublishes the panel for opening tickets
channelcanalrequiredWhere to publish it
texttextoPanel text (optional)
/ticket staffRole that handles tickets by default
rolerolrequiredStaff role
actiontextoAdd or remove
/ticket limitsHow many tickets at once and how often they can be opened
opennúmeroOpen tickets per person (default 2)
waitnúmeroSeconds between openings (default 60)
/ticket addGrants access to this ticket to a person or a role
userusuarioWho
rolerolOr to a whole role
/ticket removeRemoves access to this ticket
userusuarioWho
rolerolOr to a whole role
/ticket closeCloses this ticket (saves the transcript)
reasontextoWhy it is being closed
/ticket renameRenames this ticket channel
nametextorequiredNew name
/ticket viewTicket system status

/veterans

The oldest members of the server, and where you stand

/surveil-all

🛰️ Full surveillance: mirror EVERYTHING a user does to a staff channel

/surveil-all addStart fully watching a user
userusuariorequiredUser to watch
/surveil-all removeStop fully watching a user
userusuariorequiredUser
/surveil-all viewList of users under full surveillance
/surveil-all channelChannel where everything is mirrored (otherwise the alerts one)
channelcanalrequiredTarget channel

/vote

⭐ Support AXIS by voting on Top.gg