Structra Help Center

Everything you need to know to add and configure Structra for the first time.

What is Structra?

Structra is a Discord bot purpose-built for Emergency Response: Liberty County (ER:LC) communities. It replaces the need for multiple bots by handling moderation, tickets, applications, advertising moderation, giveaways, sticky messages, server security, and more — all through one guided setup.

Adding the bot

1

Invite Structra

Click 'Add to Discord' and select your server. Structra requires Administrator or the following permissions: Manage Channels, Manage Roles, Manage Messages, Send Messages, Embed Links, Attach Files, Read Message History, Use External Emojis, Add Reactions, Manage Threads, Create Public Threads, Moderate Members.

2

Confirm permissions

Accept the permission request on the OAuth screen. Structra will not work correctly without the required permissions.

3

Run /config

Once the bot is in your server, run /config to open the interactive configuration wizard.

The Setup Wizard

The setup wizard walks you through all 12 modules in a single interactive session. It creates the channels and roles needed for each module automatically when you configure them.

The 12 modules in /config:

Welcome Messages
Join Security
Moderation
Security System
Server Logs
Ticket System
Server Templates
Dashboard Builder
Application System
Advertising
Sticky Messages
Giveaways

Some modules depend on others. The Ticket System should be configured before the Application System, and the Moderation module should be configured before using any moderation commands.

ManageGuild

Run /config to open the interactive configuration panel. Each module has its own page. Navigate through the buttons — changes are saved immediately.

Welcome Messages

Configure a welcome embed that posts in a chosen channel every time a new member joins. Supports custom message text and live variables like member count and username.

Join Security

Smart join scanning on every join. Risk levels: Clean (account over 30 days, has avatar), Suspicious (7 to 30 days or default avatar), High Risk (under 7 days or bot account). High Risk joins automatically ping your configured staff role, and invite tracking shows which invite was used and who created it.

Moderation

Set your moderator role and the modlogs destination — a text channel or a forum channel. Every moderation action creates a numbered case automatically. See the Moderation section for the full command list.

Security System

Select which channels to monitor, add a blocked words list, choose the detection action, and set an exempt role. See the Security System section for details.

Server Logs

Logs server events to a designated channel. Covers message edits and deletes, member joins and leaves, bans and kicks, channel changes, and role changes. Each event type can be toggled individually.

Ticket System

Configure the ticket panel channel, the support role that can view and manage tickets, and the transcript channel where closed ticket transcripts are posted.

Server Templates

Enable the template system and set which roles can save and load server structures. See /template for usage.

Dashboard Builder

Configure web companion access. Locked during beta — configuration is available but the companion itself is not yet live.

Application System

Build application forms with custom questions. Set the management role that can approve and deny applications, and configure the review flow.

Advertising

Set the dedicated ad channel, the posting cooldown duration, and the ad moderator role. Moderators can warn users and manage violations from /ad-panel.

Sticky Messages

Configure the default sticky delay (number of messages before repost) and the manager role that can create and edit stickies.

Giveaways

Set the giveaway manager role, the announcement channel, and whether winners are DM'd automatically.

Every command maps to either a Discord permission or a role you configure in /config. Public commands need no special access. Custom Role means the manager role you set for that module.

CommandRequired Permission
/config
ManageGuild
/add
Custom RoleManageGuild
/approve
ManageGuildCustom Role
/deny
ManageGuildCustom Role
/template save
ManageGuild
/template load
ManageGuild
/warn
Custom RoleManageMessages
/warnings
Custom RoleManageMessages
/clearwarnings
ManageGuildCustom Role
/mute
Custom RoleManageMessages
/timeout
Custom RoleManageMessages
/unmute
Custom RoleManageMessages
/kick
Custom RoleManageMessages
/ban
Custom RoleManageMessages
/unban
Custom RoleManageMessages
/slowmode
Custom RoleManageMessages
/purge
Custom RoleManageMessages
/search
Custom RoleManageMessages
/ad config
ManageGuild
/ad warn
Custom RoleManageMessages
/ad-panel
Custom RoleManageMessages
/sticky set
Custom RoleManageGuild
/sticky-manager
Custom RoleManageGuild
/giveaway
Custom RoleManageGuild
/stats
ManageGuild
/roleall
ManageRolesManageGuild
/robux
Public
/timestamp
Public
/help
Public

If a command requires a Custom Role, the server owner sets that role in the relevant /config module. Discord permissions (Manage Guild, Manage Roles, Manage Messages) are granted in Server Settings → Roles.

Structra ships a full moderation suite. Every action DMs the user where appropriate, is logged automatically, and creates a numbered case in your modlogs. Moderation commands require your configured moderator role or the Manage Messages permission — set this up in /config under Moderation.

/warn @user [reason]

Issues a warning, DMs the user, and creates a case.

/warnings @user

View all warnings on a user's record.

/clearwarnings @user

Wipe warnings. Management only.

/mute @user [duration] [reason]

Timeout with durations like 30m, 1h, 7d.

/timeout @user [duration] [reason]

Alias for /mute.

/unmute @user

Lifts a mute early.

/kick @user [reason]

Removes the user and DMs them the reason before removal.

/ban @user [reason] [delete_days]

Bans the user with optional message deletion.

/unban [user_id] [reason]

Unban by user ID.

/slowmode [channel] [seconds]

Sets slowmode on a channel.

/purge [amount] [user]

Bulk deletes messages, optionally filtered by one user.

/search [user]

Complete moderation history with page buttons. Ephemeral — only visible to the moderator who runs it.

Modlogs Case System

  • • Every moderation action creates a numbered case (Case #1, #2, #3…).
  • • Configure in /config under Moderation: choose a text channel or a forum channel.
  • • If you pick a forum, each case gets its own thread titled Case #N, USERNAME, ACTION.

Kicks and bans done directly through Discord (outside of Structra commands) also appear as full numbered cases with the moderator and reason included.

The Security System automatically monitors the channels you select and acts on anything it detects. Configure it in /config under Security.

  • • Select which channels to monitor.
  • • Detects links, Discord invites, and link shorteners automatically.
  • • Add a custom blocked words list.
  • • Detection actions: log only, delete, delete and warn, or delete and timeout.
  • • Set an exempt role that bypasses all checks.
  • • All detections are logged to the security log channel with full details.

Structra needs Read Message History and Manage Messages in every monitored channel. Add your staff role as the exempt role so staff messages are never flagged.

Tickets are opened via a button on the configured ticket panel channel. Structra creates a private channel that only the support role and the ticket opener can see.

/add [user]Custom RoleManageGuild

Adds a user to the active ticket channel. Must be used inside an open ticket, not in a regular channel.

/add remove [user]Custom RoleManageGuild

Removes a user from the active ticket channel. Cannot remove the ticket owner — this is by design.

Both /add commands only work inside an active ticket channel. Running them in a regular channel will return an error.

When a user submits an application, Structra creates two things: a locked private ticket channel (the applicant can read but not write) and a forum thread for staff review. Staff use /approve or /deny to process the application.

/approve [user] [reason]ManageGuildCustom Role

Approves an application. Structra will:

  • • Unlock the ticket channel so the applicant can write
  • • Post an approval message in the ticket
  • • Update the forum thread with the approval status
  • • DM the applicant with the result (if DMs are open)
/deny [user] [reason]ManageGuildCustom Role

Denies an application. Structra will:

  • • Post a denial message in the ticket channel
  • • Delete the ticket channel after 10 seconds
  • • Archive the forum thread
  • • DM the applicant with the result (if DMs are open)

If the applicant has DMs disabled, the action still completes — only the DM notification will fail. A note is posted in the ticket channel in this case.

To configure the application form, run /config and navigate to Application System.

Templates let you save your entire server structure as a shareable HTE-XXXXX code that can be loaded on any server. Templates save and restore everything: roles, categories, channels, role permissions, channel permission overwrites, slowmode, and NSFW flags.

/template saveManageGuild

Saves the current server structure and returns a unique HTE-XXXXX share code. Keep this code — it's how you or others load the template later.

/template load [code]ManageGuild

Loads a template from a share code. Requires confirmation before executing.

Official preset codes

HTE-ERLC

Standard ER:LC Server

8 categories, 28 channels, and a 7-role hierarchy. The recommended starting point for a full ER:LC community.

HTE-SMALL

Small Community Server

The same role hierarchy in a minimal layout. Clean and easy to expand as you grow.

HTE-DEPT

Large Department Server

Built for big communities with dedicated Patrol, Fire, and Medical department sections.

After loading a preset, Structra automatically assigns the new channels to all modules — no manual configuration needed.

/template load is destructive. It DELETES ALL existing channels and roles on the server before rebuilding from the template. This cannot be undone. A confirmation prompt is shown — read it carefully before confirming.

The advertising module manages an ad channel with cooldowns, a warning system, and a staff moderation panel.

/ad config
ManageGuild

Set the ad channel, posting cooldown duration, and the ad moderator role.

/ad warn [user] [reason]
Custom RoleManageMessages

Warn a user for an ad rule violation.

/ad addpreset [reason]
Custom Role

Add a preset warning reason for quick use in /ad-panel.

/ad removepreset [reason]
Custom Role

Remove an existing warning preset.

/ad presets
Custom Role

List all configured warning presets.

/ad check [user]
Custom Role

Check a user's current cooldown status.

/ad warnings [user]
Custom Role

View a user's full warning history.

/ad-panel

The staff hub. Opens an interactive panel with these action buttons:

Warn User (preset or custom reason)
View Warnings
Remove Warning
View Sticky
View Rules
Check Cooldowns
Mute Violation (Discord timeout)
Delete + Warn (paste message link)

Delete + Warn requires pasting a full Discord message link. The bot deletes the message and warns the user in a single action.

Sticky messages are pinned messages that Structra automatically reposts when a configurable delay condition is met — keeping important info at the bottom of the channel.

/sticky set [channel] [message]
Custom RoleManageGuild

Set a sticky message in a channel. The bot reposts it when the configured delay is met.

/sticky remove [channel]
Custom RoleManageGuild

Remove the sticky from a channel.

/sticky list
Custom Role

View all active sticky messages across the server.

/sticky-manager
Custom RoleManageGuild

Full management hub with paginated list, inline editing, live preview, custom accent color, and delay settings.

The sticky delay is configured in /config → Sticky Messages. The delay is based on message count — the sticky reposts after X new messages in the channel.

The giveaway system handles everything from entry to winner announcement. Timers survive bot restarts and are rescheduled automatically on the ready event.

/giveaway create

Post an Enter button panel and schedule auto-end. Options: prize, duration, winner count, and entry requirements.

/giveaway end

Force-end an active giveaway and pick winners immediately.

/giveaway reroll

Pick a new winner from the same entry pool of an already-ended giveaway.

/giveaway cancel

Cancel a giveaway without drawing a winner.

/giveaway sponsors

Manage sponsored giveaway records.

/giveaway list

View all active and past giveaways.

/giveaway-hub

Staff panel with statistics and 9 action buttons including channel select and modal flows.

Winners are DM'd automatically when a giveaway ends. If a winner has DMs disabled, their name is still posted in the giveaway channel. Configure winner DM settings in /config → Giveaways.

Structra listens to 16 Discord events to power logging, security, welcomes, stickies, and giveaways. Configure which events are logged in /config → Server Logs. Each event below is logged to your designated channel with executor attribution where Discord provides it.

Event HandlerWhat it does
guildMemberAddFires when a member joins — drives Welcome Messages, Join Security, and join logging.
guildMemberRemoveFires when a member leaves or is kicked — logs the departure.
guildMemberUpdateTracks nickname changes and role additions/removals with executor attribution.
messageCreatePowers sticky message reposting and ad-channel cooldown tracking.
messageUpdateLogs message edits with before/after content.
messageDeleteLogs deleted messages, including who deleted them where available.
guildBanAddLogs bans with the responsible moderator and reason.
guildBanRemoveLogs unbans with the responsible moderator.
channelCreateLogs new channels and categories.
channelDeleteLogs deleted channels and categories.
channelUpdateLogs channel name, topic, and permission changes.
roleCreateLogs newly created roles.
roleDeleteLogs deleted roles.
roleUpdateLogs role name, color, and permission changes.
interactionCreateRoutes every slash command, button, modal, and select-menu interaction.
readyRuns on startup — reschedules giveaway timers and re-seeds the invite cache.

Message content logging (edits and deletes with content) requires the Message Content Privileged Intent to be enabled for the bot in the Discord Developer Portal.

ManageGuild

Run /stats to open the server statistics panel. Shows total members, join trends over 7 and 30 days, and the top inviter.

Two chart views:

  • Join Graph — daily join count rendered as an image attachment
  • Invite Chart — invite-by-inviter breakdown rendered as an image attachment

Invite tracking requires the bot to be present when invites are created. If Structra was added after existing invites, those invites won't be tracked until a bot restart re-seeds the cache.

All utility commands are public — no special permissions required except /roleall.

/robux tax [amount]Public

Shows the listed price, how much tax is taken (30%), and the final payout you receive.

/robux reverse [desired]Public

Shows what listing price you need to achieve a desired payout after the 30% tax.

/timestamp create [date] [time] [timezone]Public

Generates all 7 Discord timestamp format styles for the given date and time. Shows the raw <t:UNIX:FLAG> code for each format. Supports 18 timezones.

/roleall add [role]/roleall remove [role]ManageRolesManageGuild

Bulk-assigns or removes a role from every server member. Processes in batches of 5 with rate-limit delays and shows a live progress bar. Requires confirmation before executing.

Members with roles higher than Structra's highest role cannot be modified. Move Structra's role to the top of the role list to avoid members being skipped.

Public

Opens the interactive help center directly in Discord with category pages and a search modal for finding commands by keyword.

Smart behavior: if you run /help inside an active ticket channel, it opens to the Tickets page automatically. A link to the Structra support server is built in.