Security
Layered security, with the limits in plain sight.
What each security module does, what data it uses and what it cannot do because of how Discord works. All of them are free on every plan.

In layers
Three rings around your community.
A garita is the sentry post at a fortress gate. Garita organizes protection the same way: first the gate, then the wall and, inside, the square where your community lives.
The gate
Decides who gets in and how fast: verification, the recent-account filter and anti-raid.
The wall
Stops what slips through and leaves a trail: honeypot, automod, anti-nuke and logs.
The square
Where everything else happens: welcomes, roles, levels, tickets, giveaways and alerts.
The modules
Honeypot
PlannedA trap channel with a highly visible warning. Spam accounts that post in it get the configured action; by default, a softban that deletes their recent messages.
- Starts in observation mode: it records without sanctioning until you enable it.
- Staff, exempt roles and exempt people are never sanctioned.
- It does not read content: it only needs to know a post happened in the channel.
Anti-raid
PlannedWatches the join rate and anomalous activity. When the threshold you choose is exceeded, it can quarantine new accounts and trigger a temporary emergency lockdown.
- Per-server configurable thresholds.
- Quarantine for new accounts and emergency lockdown.
- Every action is logged with its reason.
Anti-nuke
PlannedWatches destructive admin actions (mass channel or role deletion, chains of bans) through Discord’s audit log, and keeps snapshots to rebuild the structure.
- Monitoring through Discord’s audit log.
- Snapshots of roles and channels.
- Recovery recreates what was deleted with new IDs (Discord cannot restore the original).
Verification and recent-account filter
PlannedRule acceptance, minimum account age, explainable risk signals and manual review. No ads in the flow.
- For accounts newer than the threshold (hours or days): kick, ban, timeout, quarantine, send to review or just log.
- Optional DM to the affected person and a log entry in the channel you choose.
- The notice says “Recent account”, never “alt”: account age does not prove it is an alternate account.
Shared principles
Least privilege
Each module declares only the permissions it needs. The dashboard flags missing ones before enabling it, and Garita checks again before every action.
Hierarchy respected
Garita does not act on members whose role is above its own, nor on the owner. When it cannot act, it says so and logs why.
Everything is logged
Every automatic action is stored in the audit history with its reason, so it can be reviewed or appealed.
No blind retries
If Discord does not answer in time, Garita checks what happened before acting again. Unclear cases go to human review.
Protected settings
Changing a sensitive module requires the dashboard admin role and an explicit confirmation.
No double sanctions
Before sanctioning automatically, Garita checks there is no other action in progress for the same person.
What data security uses
Just what it needs. The full detail is in the privacy policy (draft).
| Data | Purpose | Retention |
|---|---|---|
| Discord IDs (server, channels, roles, users) | Know where and on whom to act | While the bot is in the server (later period to be defined) |
| Each module’s configuration | Apply what staff decided | While the bot is in the server |
| Incidents and moderation cases | History, review and appeals | To be defined (draft) |
| Account creation date | Recent-account filter (derived from the ID, no extra data) | Not stored separately |
We don’t collect IP addresses and we don’t sell data. Privacy policy (draft)
What Discord does not allow (and how we handle it)
- Discord gives bots no IP addresses or device data: alt accounts cannot be identified reliably, and we do not promise it.
- There is no atomic “ban + unban”: a moderator can act between the two calls. When the outcome is unclear, the case goes to human review.
- A deleted channel or role cannot be restored with its original ID; recovering means recreating it.
- If Garita’s role is below a member’s, it cannot sanction them: move it up the role list.
- Privileged intents (members and message content) need Discord’s approval beyond 100 servers.