PACKET
Sign in
Reference

Guide

Everything you can set up with Packet, plus the message variables you can use in welcomes, announcements, and more. New here? Start with About for the big picture, then come back for the how-to.

01 How Packet works, in one minute

One blueprint: configure, diff, apply.

Your server is described by a blueprint— one document covering roles, channels, permissions, and Packet’s own features. Edit it on Configure, preview on Diff, then Apply. Nothing changes until you hit Apply, and Packet takes an automatic backup first.

packet · the core flowblueprint → apply

Four steps, one line: author a blueprint, configure it visually or with AI, review the diff, then apply — and your live server matches, in a single commit.

The same loop the dashboard runs — author, preview, commit.
01
Invite Packet
Add the bot and pick your server.
02
Build a blueprint
Write one, generate with AI, or pull your server in.
03
Configure
Edit it visually — or the JSON directly.
04
Diff → Apply
Preview every change, then push it live.
02 Features

Everything you can set up, grouped to scan.

Build these in the Configure editor, then apply — or author them in the blueprint directly (AutoMod is blueprint-authored). A glyph per group so the list reads at a glance.

Roles & members
hierarchy · pickers · color · activity
  • Roles, permissions & bands
    Hierarchy, colors, per-role permissions. Bands keep roles grouped and ordered; channel overwrites written for you.
  • The Role Caller
    Self-serve pickers — members add/remove their own roles via buttons or a dropdown. Auto-assign on join.
  • Color & activity roles
    Members pick a name color from a palette or any hex; hoisted roles auto-apply while playing a game or using an app.
  • Sticky & temporary roles
    Roles restored on rejoin; staff grant auto-expiring roles via /temprole.
Channels & structure
channels · categories · welcome screen
  • Channels & categories
    Text, voice, forum, announcement, and stage channels — created, renamed, moved, kept in sync. Rename anything; references re-point automatically.
  • Welcome screen & widget
    Discord’s invite-time welcome screen and the embeddable server widget, both kept in sync with a copy-ready embed builder.
Messages & alerts
greeter · scheduled · go-live · updates
  • The Greeter
    Join, leave, and ban messages — plain text, a rich embed, or both. Optional pinned welcome panel and welcome DM. Uses {user}, {memberCount}, and more.
  • Scheduled messages
    Post on a schedule — every few hours or set days/times in your timezone (DST-aware). Plain text or embed, with a Send now button.
  • Go-live & content alerts
    Announce when a creator goes live or posts — Twitch, YouTube, Kick, Reddit, Steam, and more — with an optional 🔴 Live role while they stream.
  • Packet updates
    Opt in to receive Packet’s own announcements — new features and fixes — in a channel you choose.
Forums & polls
community engagement loop
  • Top-post polls
    Packet periodically opens a poll of the top posts, announces the winner, and can run a follow-up “should we build it?” vote.
  • First posts & upkeep
    Post and pin a rules / how-it-works thread, archive stale threads, ping a role when a poll opens; configure tags and guidelines per forum.
Moderate & support
moderation · automod · tickets · logging
  • Moderation
    Warn, mute, kick, and ban from /mod with numbered cases and an escalation ladder; Discord’s own actions and AutoMod hits feed the same record.
  • AutoMod
    Keyword, username, profanity, spam, and mention-spam filters from your blueprint, with per-rule exempt roles/channels and actions.
  • Support tickets
    A panel opens a private, staff-only help room — Packet writes the permissions so it can’t leak. Triage in Discord or a dashboard.
  • Server logging
    Mirror joins, leaves, role changes, bans, and edits to a log channel and a dashboard activity feed.
Automated snapshots
your safety net, on a schedule
  • Scheduled backups
    Periodically capture a full backup of your server, keeping the most recent N.
  • Tamper-resistant
    Automated snapshots can’t be deleted manually, so your safety net stays intact.
03 Message variables

Drop a variable in — Packet fills it in on send.

Usable in any Packet-posted message (welcomes, scheduled messages, forum pings, first posts). Case-insensitive; anything unrecognized is left exactly as you typed it.

packet · message variablesreference
MemberGreeter only
{user}Clickable mention (pings them)
{user.name}Display name (nick / global)
{user.tag}Their @handle
{user.avatar}Avatar image URL — use in an embed image
welcome · goodbye · ban — the only per-member events
ServerEverywhere
{server}Your server’s name
{server.icon}Your server’s icon URL
available in every Packet-posted message
CountsEverywhere
{memberCount}Total members (e.g. 1,234)
{memberCount.ordinal}As a rank (e.g. 1,234th)
scheduled, greeter, forum, first posts
Forums & pollsForum messages
{forum}The forum’s name
{winner}The winning post
{votes}Its vote count
{link}Link to the post
forum pings, first posts, poll-winner announcements
BanBan announcements
{reason}The ban reason
only when a ban message is posted

case-insensitiveAnything Packet doesn’t recognize is left exactly as you typed it. In an embed’s title, author, or footer, mentions don’t render — use {user.name} there instead of {user}.

Grouped by where each variable works — the page's most-referenced asset.
The complete reference

Guide

Everything you can set up with Packet, plus the message variables you can use in welcomes, announcements, and more. New here? Start with About for the big picture, then come back for the how-to.

How Packet works, in one minute

Your server is described by a blueprint — one document covering your roles, channels, permissions, and Packet's own features. You edit it visually on the Configure page, preview exactly what will change on the Diff page, then Apply it to your live server. Nothing changes until you hit Apply, and Packet takes an automatic backup first.

  1. Invite Packet and pick your server.
  2. Build a blueprint — write one from scratch, generate one with AI, or pull your existing server in.
  3. Configure it visually (or edit the JSON directly).
  4. Diff to preview, then Apply.

Features

Set every one of these up in the Configure editor — the section to open is noted with each — then preview the change and apply it. (You can also author any of them in the blueprint directly, or with the AI generator.)

Roles, permissions & bands

Define your role hierarchy, colors, and per-role permissions. Role bands group roles by purpose (staff, color, activity, members) and keep them ordered correctly. Packet writes channel permission overwrites for you, so private and read-only channels are correct by construction. (Configure → Roles and Role bands.)

Channels & categories

Text, voice, forum, announcement, and stage channels, organized into categories — created, renamed, moved, and kept in sync. Rename anything and Packet re-points every reference automatically. (Configure → Channels.)

The Role Caller — self-serve role pickers

A message members click to add or remove their own roles (buttons or a dropdown). Use several pickers to split menus by topic or across channels, and auto-assign roles on join. (Configure → Features.)

Color roles

Let members pick their own name color. Offer a preset palette (organized into a single-select menu, auto-split across menus if it's large), or enable custom colors so members choose any hex color via a button. (Configure → Color roles for the palette; Custom colors for the pick-your-own option.)

Activity roles

Auto-assign a hoisted role while a member is playing a game or using an app (for example, a "Playing ARK" role, or a "Listening to Spotify" role) — removed shortly after they stop, so the member list groups people by what they're doing. (Configure → Activity roles.)

Sticky roles & temporary roles

Sticky roles restore a member's roles when they rejoin. Temporary roles let staff grant a role that auto-expires, via /temprole. (Configure → Features.)

The Greeter — welcome, goodbye & ban messages

Post a message when a member joins, leaves, or is banned — plain text, a rich embed card, or both. Add an optional pinned welcome panel (a kept-in-sync rules/welcome board) and an optional welcome DM. Uses variables like {user} and {memberCount} (see below). (Configure → Greeter.)

Scheduled messages

Post a message to a channel on a schedule — every few hours, or on set days and times in your timezone (e.g. every Friday at 6pm, daylight-saving aware). Plain text or a rich embed. A Send now button posts on demand. (Configure → Scheduled messages.)

Forums & polls

Run a community-engagement loop on a forum: Packet periodically opens a poll of the top posts, announces the winner, and can run a follow-up "should we implement it?" vote. It can also post and pin a first post (rules / how-it-works), archive stale threads, and ping a role when a poll opens. Configure tags, the default reaction, and guidelines per forum. (Configure → Forums.)

Welcome screen & server widget

Discord's invite-time welcome screen (a description plus up to five channel shortcuts) and the embeddable server widget — both kept in sync, with a copy-ready embed builder for the widget. (Configure → Welcome & widget.)

Automated snapshots

Periodically capture a backup of your whole server on a schedule, keeping the most recent N. Automated snapshots are tamper-resistant — they can't be deleted manually, so your safety net stays intact. (Configure → Auto snapshots.)

AutoMod

Discord's native AutoMod, in your blueprint: keyword filters, username (member-profile) filters, the built-in profanity / sexual-content / slur presets, spam blocking, and mention-spam limits — each with exempt roles/channels and actions (block the message, send a staff alert, time the member out, or quarantine them). (Configure → AutoMod.)

Social alerts — go-live & new-post notifications

Announce when a creator goes live or posts — your own channels or your favorite creators, Packet just watches public feeds. It posts a rich card to the channel you pick, exactly once per stream or post (no spam, no duplicates). (Configure → Social alerts.)

Platforms you can watch (what to put in the Creator box):

PlatformWhat it announcesCreator field
TwitchGoes liveTwitch username — shroud
KickGoes liveKick username — xqc
YouTubeNew uploadChannel ID — UC… (not the @handle)
RedditNew postr/subreddit or u/username
GitHubNew releaseowner/repofacebook/react (or owner/repo/commits)
SteamGame updateApp ID — the number in the store URL, e.g. 346110
BlueskyNew postHandle — name.bsky.social
MastodonNew post@[email protected]
RSS / AtomNew itemAny feed URL — covers blogs, podcasts, Substack, Medium, and more

Setup: open Configure → Social alerts, + Add alert, pick a platform, paste the creator, and choose the channel to post in. Twitch and Kick need a one-time setup by the bot's operator (a free developer app — see .env.example); every other platform works out of the box. Hit Send test alert to preview the card — it uses the creator's most recent post (or current stream), so you can see a real alert without waiting, even for someone who rarely posts.

Post style — each alert is one of two styles (pick it per alert; new alerts start on the recommended one for that platform, and you can switch any time):

  • Link preview (recommended for posts, videos, news — YouTube, Reddit, GitHub, Steam, RSS, Bluesky, Mastodon): Packet posts your message with the link, and Discord builds the rich preview — the image, title, and summary pulled straight from the page, exactly like when you paste the link yourself. This is usually the best look, and it's what you want if a manual link post shows more than a Packet card.
  • Packet card (recommended for live streams — Twitch, Kick): Packet builds its own embed (with the stream title, game, and viewer count). Use this when you want full control of the card, or for streams (which aren't a web page Discord can preview).

Make it yours — each alert can also have:

  • a custom message (with variables — see below), and, in Packet card style, a custom embed; leave them blank for Packet's built-in defaults;
  • a ping role (pairs perfectly with a self-serve role from the Role Caller — members opt into "stream pings" themselves);
  • filters — only alert when a stream is playing certain games, or when a title contains certain keywords;
  • a cooldown so a flaky stream can't spam the channel;
  • a live role (Twitch/Kick) — give a member a "🔴 Live" role while they're streaming, removed automatically when they go offline.

Alert variables (for the message + embed): {creator}, {title}, {url}, {game}, {viewers}, {platform}, and {mention} (the ping role). Plus {server} and {memberCount}. For example: {mention} **{creator}** is live playing {game}! {url}

Not supported (yet): TikTok, X/Twitter, Instagram, Facebook, and Threads don't offer a free way to watch arbitrary creators, so they're not available. Many of those creators cross-post to a platform above — watch them there.

Moderation — warn, mute, kick, ban with memory

Moderate your server from /mod in Discord: warn, mute (timeout), kick, and ban members — each recorded as a numbered case with its reason, and /mod history shows a member's whole record. Set up an escalation ladder so Packet auto-mutes, kicks, or bans once a member accumulates enough strikes. Discord's own actions (a manual ban, an AutoMod timeout) can feed the same record, so repeat offenders escalate even when no staff are online. In Configure, choose the mod-log channel, which staff roles are exempt, whether the member gets a DM, and the escalation thresholds. (Configure → Moderation; the actions themselves are /mod commands in Discord.)

Server logging — a record of what happens

Keep a record of your server's activity. Packet mirrors joins and leaves, nickname and role changes, bans and kicks, channel and server edits, and members using Packet's own features — to a log channel in Discord AND a dashboard activity feed on the server's Status page. Route different kinds to different channels, exempt certain roles or channels, choose who each log entry posts as, and set how long the dashboard feed keeps history. (Configure → Logging.)

Support tickets — private, staff-routed help rooms

Let members open private, staff-only help rooms. Post a panel with a button members click to open a ticket, and Packet creates a private channel and writes the permissions itself, so a ticket can't leak. Staff claim, reply, close, and triage tickets right in Discord (/ticket) or from a full dashboard with search, filters, priorities, tags, and canned replies — and a cross-server Tickets hub manages every server you run in one place. Set the staff roles, an auto-close timer for idle tickets, a satisfaction survey on close, and optional questions asked before a ticket opens. (Configure → Tickets.)

Packet updates — hear from Packet directly

Opt in to Packet's own announcements. Pick a channel and Packet posts new features, fixes, and news there as a clean, managed message — so you find out what's new without leaving your server. Add a ping role if you want members notified. (Configure → Packet updates.)


Message variables

In any Packet-posted message (welcomes, scheduled messages, forum pings, first posts) you can drop in variables — they're filled in when the message is sent. They're case-insensitive, and anything Packet doesn't recognize is left exactly as you typed it.

VariableBecomes
{user} / {user.mention}A clickable mention of the member (and it pings)
{user.name}Their display name (nickname / global name)
{user.tag}Their @handle
{user.avatar}Their avatar image URL (use in an embed image field)
{server} / {server.name}Your server's name
{server.icon}Your server's icon URL
{memberCount}Total members (e.g. 1,234)
{memberCount.ordinal}Member count as a rank (e.g. 1,234th)
{forum}The forum's name (forum messages)
{winner} / {votes} / {link}The winning post / its votes / its link (poll winner announcements)
{reason}The ban reason (ban announcements)
{creator} / {title} / {url}The creator, the stream/post title, and its link (social alerts)
{game} / {viewers}The game and viewer count (live social alerts)
{platform} / {mention}The platform name, and the ping role (social alerts)

Where each works: {user.*} only exists for the Greeter (welcome/goodbye/ban) — those are the only per-member events. Scheduled messages, forum pings, and first posts have {server}, {memberCount}, and (for forums) {forum}. Social alerts add {creator}, {title}, {url}, {game}, {viewers}, {platform}, and {mention}.

Mentions: pinging roles and linking channels

  • Type @RoleName (the exact role name) to ping a role. @everyone and @here work too.
  • Type #channel-name (the exact channel name) to turn it into a clickable channel link.

One catch: Discord only renders mentions in a message's body and inside an embed's description or field valuesnot in an embed title, author, or footer. In those spots, use {user.name} (a plain name) instead of {user} (a mention), or they'll show as raw code. (Packet handles this for you in titles — {user} there shows the name automatically.)

Rich embed cards

Greeter messages, scheduled messages, forum posts, and social alerts can include a rich embed: a title, description, accent color, author line, thumbnail and banner images, fields, footer, and a timestamp. Set {user.avatar} as the thumbnail for a welcome card, use {memberCount} in the footer, and so on. Leave the embed blank for a plain-text message.


Where to go next

  • Configure — build and edit everything above, visually.
  • Diff — preview exactly what an apply will change.
  • Apply — push it live (with an automatic backup first).
  • Commands — the full slash-command reference.
  • Changelog — what's new.
  • Questions or something off? The Feedback page reaches the team.