To assign roles automatically when someone joins (the Role Caller's auto-role
feature), Packet uses Discord's Server Members access and is notified when a
member joins a server Packet is in. It acts on that event in memory to grant the
roles you configured — it does not store a member list or roster. Packet's role
picker also lets members click to add or remove their own roles; those actions change
roles on Discord and aren't kept as personal records.
Sticky roles (the optional "restore roles on rejoin" feature). Where a server enables
sticky roles, Packet records which roles a member held when they leave, so it can put
them back if the member rejoins. This is the one Role Caller feature that stores
member-specific data, and only this: a member's user ID and the role IDs they had. It is
deleted as soon as the member rejoins (their roles restored) and, if they never return,
is pruned automatically after about 90 days. The feature is off by default.
Temporary roles (the optional /temprole feature). Where a server enables temporary
roles, a moderator can grant a role that auto-expires. Packet stores the grant — the
member's user ID, the role, who granted it, and when it expires — until the role is
removed, then deletes the record. The feature is off by default.
Moderation cases (the optional Magistrate feature). Where a server enables moderation, a
moderator can warn, mute, kick, or ban a member with the /mod commands. Packet stores a case
record — the member's user ID, the moderator's ID, the action taken, the reason the moderator
typed, and when — so moderators have history and the automatic escalation ladder works. When the
server turns on the option to also track Discord's own moderation actions, Packet records the same
kind of case for a ban / kick / timeout done through Discord's own menu, or a timeout applied by
Discord's AutoMod, reading only the action, the target, and the reason from Discord's audit log. It
also counts how often a member's messages trip AutoMod, and records a case only if that happens
repeatedly in a short window — a count, never the messages themselves. It does not store any
message content. The feature is off by default.
Activity status (the Activity roles feature). Where a server enables Packet's
optional Activity roles feature, Packet uses Discord's Presence access. Through
it, Discord shares a member's current activity — for example a game they're
playing, or another app or service (such as music) shown in their Discord status.
Packet compares that activity to the rules the server configured and adds or removes a
role to match, in memory as the activity changes. It does not store any
member's activity or status — the assigned Discord role is the only record. The feature
is off by default and runs only where a server's admins enable it.
Server logging (the optional Logging feature). Where a server enables logging, Packet mirrors
its server's activity into a channel the server's admins choose in Discord, and into a shorter-lived
activity feed on the server's Status page in the dashboard. Admins choose what's included, and
everything below is on by default: members joining and leaving; nickname changes; a member's roles
being added or removed; bans, unbans, kicks, and timeouts (including ones AutoMod hands out on its
own); channel changes; other server changes (roles, emoji, invites, threads, and similar settings);
a member using one of Packet's own features, like the role picker or a custom color; and Packet's own
dashboard actions, such as applying a blueprint, attributed to whoever ran them. Each entry names who
did it, when there's a "who" to name, and what happened; an edit — a channel or role update, say —
also lists what changed. Admins can exempt specific channels or roles from being logged at all, and
choose whether each entry posts under the name of the person who did it, under "Packet Logs," or
under a custom name they set.
What we keep, and for how long, depends on where it lands. The copy Packet keeps in the
dashboard's activity feed is deleted automatically after the server's chosen retention period
(1–365 days, 30 by default). The copy posted to your server's Discord channel is different: it's a
message in your server like any other, we don't keep a separate copy of it, and we have no way to
edit or retract it once it's sent — only your server's own admins can remove it there. The same is
true of the ticket-opening staff summary below, when a server routes ticket activity to a log
channel. The feature is off by default.
Support tickets (the optional Concierge feature). Where a server enables tickets, a
member can open a private support channel from a panel. Packet stores ticket metadata — who
opened it, the staff member who claimed or closed it, its status and timing, the close reason,
and (if the panel asks for one) the short subject line the member types when opening. If a desk
asks for feedback when a ticket closes, Packet stores the 1–5 star rating and the optional comment
the member chooses to leave. To power support signals like "awaiting a reply" and first-response
time, Packet sees that a message was sent in a ticket — who sent it and when — but not its text.
A staff summary when a ticket opens. Where a server also routes ticket activity to a log
channel, opening a ticket posts a short staff-only summary there too — how long the member has been
in the server, how old their Discord account is, how many roles they hold, their prior ticket
history, and, if Moderation is on, a short summary of their case history. It's a snapshot from the
moment the ticket opened, not a live view; a moderator can always pull a fresh one from the ticket
itself. This only ever goes to the channel your admins chose for it, never to the ticket the member
can see, and — like anything else Packet posts to a server's own channels — we can't take it back
once it's there.
Separately, a server's admins can turn on an optional conversation view so support staff can read
and reply to a ticket's thread from the dashboard — kept scoped to ticket channels only, for easy
management of your support and your own record-keeping of those conversations. When a staff member opens
a ticket, Packet reads that ticket channel's recent messages — including their text — live, on demand,
only to display them, and stores none of it: an edit or deletion on Discord is reflected the next time
the thread is loaded, and any attachments are shown as links only (Packet never downloads them). This
uses Discord's "Message Content" permission, applies only to ticket channels, and is off unless a
server's admins turn it on for their server. The tickets feature as a whole is off by default and
runs only where a server's admins enable it.
Leveling, games, and coins (the optional Engagement feature). Where a server enables
leveling, Packet stores activity counts — how many messages you've sent and minutes you've
spent in voice there — never the content of anything you say. Those counts power your
level, rank, and the server's leaderboards. Your global rank aggregates your counts across
the leveling-enabled servers you're in; on global and server-group leaderboards you appear as
"Anonymous" unless you opt in to being named. Where a server also turns on coins and games,
Packet additionally stores your coin balance, your record of bets and payouts, your daily
and streak progress, and your tournament scores and lottery tickets. Run /level privacy in
any server to see exactly what's stored, control your visibility, or delete all of it — your
coins included — permanently and irreversibly. The feature is off by default and counts
activity only in servers whose admins enable it.