Updated October 27, 2026

Documentation

Choose a feature. Set it up. Make it yours.

Open dashboard
Free

Punishment messages

Customize moderation responses, member DMs and logs for each action.

Set it up

  1. Open Moderation > Punishment messages and expand an action.
  2. Edit the supported Command response, Member DM or Log message using the existing embed editor and live preview, then save.
  3. Use {action}, {user}, {username}, {userId}, {moderator}, {server}, {reason}, {details} and {case} placeholders. Case is — if the number has not yet been allocated.
  4. Use the highlighted Universal punishment message at the bottom to set one design for responses, DMs and logs. Existing action-specific designs override it.
Limits & things to know
  • Slash and prefix commands share these designs. Auto Punish uses the matching DM/log designs. Quarantine and Scam Catcher support DMs and logs.
  • DM enable/disable settings still apply. Failure notices cannot be hidden by success designs. Permission checks and actual enforcement do not change.
  • Unconfigured designs keep existing notices; invalid saved designs fall back safely.
  • Server selection lists installed servers first. Other manageable servers appear below with muted cards and Add bot links that open in a new tab.
  • The support-server status message checks all module services every five minutes: loaded handlers, shared database reads, Discord connectivity, required member/message intents, and the website health endpoint. Green is Operational, yellow is Experiencing issues, red is Not operational. These are service readiness checks, not end-to-end tests of each customer configuration; no test punishments or tickets are created. The status panel shows uptime as the percentage of recorded connection checks that passed in the rolling last 30 days. Checks are recorded every five minutes and retained across restarts, with the tracking start date and check count displayed. No earlier uptime history is invented. Missed checks during a full host crash are unobserved and excluded; this is sampled availability, not continuous external uptime monitoring. Last updated shows the check time. A complete host crash cannot update its own message.
  • Every dashboard color wheel also has a hex-code field. Enter #RRGGBB (or omit #); three-digit shorthand expands on leaving the field. Valid six-digit values update previews immediately. Use the module’s Save action to keep changes. Discord’s fixed button styles do not accept hex colors.
Back to topics ↑
Plus

Departments

Department shifts, reports, evidence links and leave requests. Setup guides you through name, Discord roles and optional goals. Open a role dropdown and tick the roles you want; Shift admin allows corrections to completed shift hours.

Set it up

  1. Open Departments under the ER:LC sidebar heading. ER:LC integration opens the connection settings. Manage Server or server ownership is required to create a department. Create up to 15 departments.
  2. Choose membership roles and assign supervisor permissions separately for each department. Members sign in at /departments and automatically see departments matching their current Discord roles.
  3. Set weekly or monthly hours, arrest and scene quotas. Periods use UTC. Quotas show progress and do not automatically issue infractions.
  4. Start or end a department shift and submit arrest or scene details. Evidence is optional: add up to 10 HTTPS links. Direct file uploads are not supported.
  5. Request leave with dates and a reason. Authorized supervisors approve or deny it; you cannot approve your own leave. Active approved leave marks your quota paused.
  6. Department settings and records are saved across restarts. Removing department membership roles removes portal access on the next request.
Limits & things to know
  • Use Activity, Members, Reports, Shifts and Time off tabs to navigate. Reports and activity are visible to all current department members; leave reasons stay private to the requester and reviewers.
  • Activity refreshes every 20 seconds while visible. Choose which event types appear under Activity feed settings in setup. This shows Relayed department activity, not live ER:LC players.
  • Members shows Discord IDs, roles and department duty status. Load additional pages for large servers; search covers loaded members.
  • Department shifts currently use their own records, separate from the existing Shift Logging module.
  • Evidence attachments use externally hosted HTTPS links.
  • Successful saves update reports and shift state immediately from the save response. Live activity refreshes do not reset the other forms. Failed saves retain input and show an error.
  • Setup includes Police, Fire/EMS and Civilian starting templates, which fill draft names/descriptions/report questions without creating Discord roles. In Report questions & rank goals, add up to eight required questions per arrest/scene report, each answer up to 1,000 characters. Add up to 25 rank-goal overrides; the member’s highest matching Discord role determines hours/arrest/scene goals. Base goals remain editable separately.
  • Reports begin Pending. Supervisors with Review permission can approve or return another member’s report with a required reason. Authors can correct and resubmit returned reports; up to ten previous revisions are retained and the original creation time is preserved. Approved reports cannot be changed through this correction flow. Reports and shift totals are not automatically punished by these department goals.
  • Members tab includes View record for reviewers, showing a member’s department progress, shift history and reports. Profile API access is limited to the member themselves or a department reviewer/manager; private leave reasons remain excluded from the shared activity feed.
  • The staff workspace links department duty, progress and goals to the live ER:LC moderator room. Server-staff and department shifts remain separate; select the appropriate team.
Back to topics ↑
Free

Getting started

Add Relayed, open your server and configure your first module.

Set it up

  1. Use Add to Discord on the website. The current invite requests Administrator; only install the bot in a server you are authorized to manage.
  2. Sign in at /dashboard with Discord. Choose a server where you have Manage Server or Administrator.
  3. Keep Relayed's role above the roles and members it needs to manage. Discord's role hierarchy still applies with Administrator.
  4. Use Quick setup for a guided start, or open a module directly. Configure required roles and channels before enabling or publishing it.
  5. Use Overview to set your command prefix. The default is !; slash commands remain available.
  6. Type to search or scroll long role/channel menus. Duplicate names show an ID suffix, and Quick setup channel choices show their parent category. Multi-role checkboxes stay open while you choose. Refresh roles & channels after creating something in Discord.
Limits & things to know
  • Ticket, moderation and ER:LC reviewer lists support up to 25 roles. Discord-native AutoMod exemption lists allow up to 20.
  • Saving a draft does not publish a Discord panel. Use that module's Save & publish action when ready.
  • Use a test channel and a regular test account before enabling automatic actions for your community.
  • Dashboard controls acknowledge clicks immediately without flashing loading text for fast requests. Roles/channels are prepared in the background. Existing controls remain visible during refreshes; a failed refresh keeps the previous controls and reports the error. Click feedback is not confirmation that a save or game action succeeded.
  • If an older dashboard tab reports Unknown module while saving, refresh it and retry. Free-server saves preserve existing Plus settings without adding configuration for unrelated features. Failed saves leave the last successfully saved server settings in place.
  • Overview shows open tickets, posted partnerships, staff on duty and enabled modules. The ticket queue opens request details; Audit logs shows actions recorded by Relayed, not the complete Discord server audit log. View all opens the retained activity list. Refresh reloads the current saved records.
  • Settings menus share a dark searchable picker. Click and type in the same field to filter. Roles/channels retain their server order and IDs are shown for duplicate names. Multi-select menus stay open with checkboxes and a selection count. Arrow keys move, Enter selects, Escape closes without changing a single selection, and Tab moves onward. Menus scroll and adapt around the viewport.
  • The dashboard uses larger, stronger text. Open a ticket row for its full details. Applications groups optional reviewer and acceptance roles under Review roles & acceptance.

Commands

/dashboard/setup/diagnose/help/ping

Use Discord's command picker for current required fields. Prefix equivalents use your server's configured prefix.

Back to topics ↑
Free

Tickets & support

Create private support channels with separate panels, teams and custom questions.

Set it up

  1. Tickets has three sections: Tickets, Panels and Settings. Open Settings for blacklists, transcript channels and numbering.
  2. Open Tickets & support → Panel & embed editor. Use Add ticket panel for another panel, such as Billing or Bug reports.
  3. Name the panel and choose its Panel channel and private ticket-log destination. Each panel keeps its own setup.
  4. Choose a Components V2 layout, start from scratch or import supported JSON. Classic is available too. Edit the live preview and move the dropdown/buttons block where you want it.
  5. In Support options, name each option and choose the staff roles that may see and handle its tickets. Different options can use different teams.
  6. Optionally choose notification roles to ping. They do not gain access unless also selected in the handling team. Relayed needs permission to mention the roles.
  7. Choose a category for each option or a fallback category at the bottom. A fallback is optional when all options have their own category. Create category asks before creating it.
  8. Expand Opening questions under an option. Add 1–5 questions, up to 45 characters each, and mark required answers. Members can answer with up to 1,000 characters.
  9. Choose Dropdown or Buttons. Button styles are Discord's blue, gray, green or red; custom hex button colors are not supported.
  10. Save & publish the selected panel, then open a test ticket. Up to 20 panels and 20 options per panel are supported.
  11. In a Components V2 option, use Emoji (optional) to place an icon before its dropdown label and button text. Paste one regular emoji, a custom Discord emoji code such as <:name:123456789012345678>, or its ID. The preview updates as you type. Save and publish the panel to update the Discord message.
  12. In Tickets → Panel & embed editor → Edit ticket welcome message, use Welcome message for to select the shared default or one support option. Enable Use a custom welcome for this support option, edit its title, description, colors, images and fields, then Save message design. The same selector is available when editing Ticket welcome in the Embed editor.
  13. At the bottom of Edit ticket welcome message, open Ticket buttons. Edit Claim, Close or Transcript text, emoji and Discord color; move or remove a button. Use Add a button to restore an action or add an HTTPS website link. Choose Shared welcome for panel defaults, or choose a support option and enable Use custom buttons for this support option. Button overrides are independent of custom welcome text. Save message design.
Limits & things to know
  • There is still one open ticket per member per server, even across different panels.
  • Ticket access includes the requester, selected staff teams and Discord administrators. A participant can invite another member with /add, exposing existing ticket history to them.
  • Closing has an optional reason. Relayed archives the transcript to the selected private logs channel, attempts a requester DM and deletes the channel. If an open ticket requester leaves the server, Relayed automatically closes that member’s ticket with the reason ‘Requester left the server’ through the same archival, DM, audit-log and deletion flow. This automatic close requires the Server Members intent in the Discord Developer Portal and the matching hosting setting. Failed archival keeps the channel for recovery; blocked DMs do not prevent closure.
  • Transcripts export up to the latest 500 messages and attachment links. Full message text requires Message Content access. Files already downloaded by recipients remain under their control.
  • Manually deleting a ticket channel clears its open-ticket record. Republish a panel after changing its options or moving to a custom bot.
  • Each option uses the same emoji in its dropdown and direct button. Blank means no icon. Static and animated custom emojis must be available to the bot through a server it is in or its own application; unavailable custom emojis are rejected before publishing. Custom Bot preserve explicitly configured accessible panel emojis and continue stripping unavailable default Relayed emojis. Discord dropdown placeholder text stays text-only. Emoji configuration does not grant channel, role or ticket access.
  • Support-option welcomes are separate for each ticket panel. Options without a custom design inherit that panel’s shared welcome. Saved welcome changes apply to newly opened tickets without reposting the panel; existing ticket messages keep their prior design. Disable the custom-welcome checkbox and save to return an option to the shared welcome. Ticket details are supplied automatically; controls can be customized in Ticket buttons.
  • Closing does not fail solely because the requester’s permission overwrite is missing or cannot be updated. Locking requester replies is best-effort; transcript archival remains required before channel deletion. If archival fails, the channel stays for recovery and may still allow replies. Reopening still requires permission-overwrite access.
  • Use Remove to delete a content block or support option, then save and publish the revised panel. Structural edits are retained in drafts. The dropdown/buttons block is labeled Required ticket controls and at least one support option must remain.
  • Ticket welcome buttons allow up to five controls per open/closed row, including an empty row. Add, remove, reorder, rename, recolor or change emojis on supported ticket actions. Website buttons use Discord’s gray link style and HTTPS URLs up to 512 characters. Closed ticket controls (Reopen/Transcript) are in an optional expandable section and apply when a closed channel is retained.
  • Hidden buttons do not disable slash/prefix commands or change permissions: Claim, Reopen and Transcript remain support-team actions; Close remains available to the requester or assigned support team. Website buttons do not run commands or grant access.
  • Saved button changes apply to newly opened tickets. Each new ticket retains its selected controls for later claim/reopen updates. Existing ticket headers retain their prior controls. Panels and support options retain separate settings; options without their own override inherit shared buttons. Accessible custom emojis are checked before creating the ticket.
  • One configured ticket panel is free. Relayed Plus is required to create or use additional panel designs. Existing open tickets can still be handled if Plus expires; saved extra panels are retained. Multiple posted copies of the main panel do not count as extra configured designs.
  • Automatic requester-left closure waits 15 seconds and requires a fresh Discord Unknown Member response. Rejoining cancels pending closure. Requester membership is checked again before closure and deletion. Rate limits, permission failures, network errors and uncertain membership keep the channel.
  • Ticket blacklist settings in Tickets & support block selected Discord roles or user IDs from opening new tickets across all panels. Existing tickets remain manageable.
  • Assigned support staff can use /close request reason to ping the opener with an embed and Accept & close / Deny buttons. Only the opener can decide. Requests expire after 24 hours and never close automatically on expiry. Accept uses normal transcript archival and closure; Deny leaves the ticket open.
  • Use /close now for immediate slash closure. Prefix close still works as before; prefix close request reason also requests approval.
  • Under each support option > Opening questions, set minimum and maximum answer characters per question. Minimum 0 means no minimum; optional answers can be blank. Maximum is 1–4,000 (default 1,000), minimum cannot exceed maximum. Use minimum 4 and maximum 4 for exactly four characters. Save and publish the panel; limits apply to newly opened forms.
  • Per support option, Ticket name & closing permissions lets you set channel names using {username}, {number} and {option}. Choose Support team or Only selected roles and separately allow/disallow the opener from closing. Owners and Discord administrators always retain control. Closing roles still need ticket access through the staff team. Applies to newly opened tickets after publishing. Closure commands, buttons and close requests use the same restriction. If the opener cannot close, close requests are unavailable; use an authorized closer directly.
  • Ticket welcome message > Ticket buttons supports colors (blue, gray, green, red), labels, emoji, links, order and removal, with shared or per-option designs. Changes apply to new tickets.

Commands

/ticket subject/claim/close/transcript/add member/rename name/ticketpanel

Use Discord's command picker for current required fields. Prefix equivalents use your server's configured prefix.

Back to topics ↑
Free

Moderation & permissions

Choose exactly which roles can use each moderation action.

Set it up

  1. Open Moderation. Cases is the default view; search the loaded records by member, reason or case number.
  2. Choose Permissions, select a command group and expand an action to choose its allowed roles. Save moderation settings when finished.
  3. Choose Settings for the module switch, member DMs and moderation log channel. Choose Messages to edit Universal or one action’s message designs.
  4. Open Moderation. Choose the log destination and whether Relayed attempts punishment notice DMs.
  5. Expand each action you want to use, select Selected roles only and choose up to 25 allowed roles.
  6. Leave actions disabled when they are not needed. Unconfigured actions stay disabled, including for administrators.
  7. Save moderation settings. The same policy applies to slash commands and the server's configured prefix.
  8. Test with an authorized moderator and an ordinary member. Member actions still check both the moderator's and bot's role hierarchy.
Limits & things to know
  • Unauthorized attempts receive a permission-denied response.
  • For a ban, kick or timeout, Relayed attempts the notice DM before acting when notifications are enabled. A blocked DM does not cancel an otherwise valid punishment.
  • Native Discord AutoMod timeouts are separate and cannot send a Relayed pre-action DM.
  • Case records retain the action, target, staff member, reason and time for authorized review.
  • Manual slash and prefix bans cannot target members with Discord Ban Members permission, Administrator, or a role selected for Relayed’s ban command. Targets must be strictly below the acting moderator and Relayed in the role hierarchy. Blocked bans do not send punishment notices or create successful cases.
  • Switching Moderation sections keeps unsaved inputs on the current page. Case search filters loaded records; it does not retrieve additional history.

Commands

/warn member reason/warnings member/modlogs member/case id/timeout member minutes reason/untimeout member/kick member reason/ban member reason/unban user/purge/slowmode/lock/unlock

Use Discord's command picker for current required fields. Prefix equivalents use your server's configured prefix.

Back to topics ↑
Free

AutoMod & unsafe links

Block unwanted content and configure points-based responses.

Set it up

  1. Open Auto moderation → Set up filters for the guided questions. Select blocked words, spam, invites, links, offensive language or mention spam.
  2. Choose exceptions for trusted roles, categories and channels. Set a private alert channel when needed. Review whether each rule should be enabled now.
  3. Under Block unsafe links, separately enable Scam & malware links and/or Adult-site links. Both begin off.
  4. Open Exceptions to allow specific websites or exempt roles, categories and channels. Save link protection, then use Check a link with the saved settings.
  5. Under Auto Punish, choose which new violations add points, how many points each adds and the counting window.
  6. Add punishment thresholds, such as a warning before a later timeout. Enable automatic punishments and save only after reviewing the sequence.
Limits & things to know
  • Discord-native saved filters run through Discord even while Relayed is offline. Custom unsafe-link checks run while Relayed is online and delete messages after posting.
  • Custom link checks require Message Content and Manage Messages. They inspect new messages and edits using local Block List Project domain lists; user URLs are not visited or sent to a scanner.
  • Lists refresh daily and keep the last usable copy if a download fails. No list catches every website, redirect, image or attachment; an unlisted result does not prove a site safe.
  • Successful link removals can add configured AutoMod points. Failed deletions and duplicate events do not add extra points. Owners, Administrators and Manage Server members are exempt from custom link checks.
  • Crossed warnings run before the highest crossed punitive step. Expiring or resetting points does not itself trigger punishment. Native Discord timeout actions remain independent.
  • Discord-native exemptions are capped at 20 roles. Auto Punish exemptions support 25 roles.
  • Advanced filter editor automatically saves valid edits after a short pause and activates the rule. No separate enable checkbox is required. Saved means Discord confirmed the rule. Validation and permission errors remain visible; incomplete edits are not applied. Save filter also saves immediately without closing the editor.
Back to topics ↑
Free

Anti-Nuke

Quarantine members who exceed configured destructive-action limits.

Set it up

  1. Open Anti-Nuke. The server owner completes the four-step setup; protection starts disabled.
  2. Choose Authorized roles first. The owner controls this list; selected roles may manage protection and release quarantines, subject to dashboard access.
  3. Set a rolling time window and limits for channel/role creation and deletion, bans, kicks and mass pings. Quarantine triggers on the limit, not one action after it.
  4. Mass pings always includes @everyone and @here. Optionally select additional role mentions; ordinary member mentions do not count.
  5. Choose explicitly trusted user IDs, a private log destination and whether quarantine notices should be sent by DM.
  6. Optionally enable bot-addition protection. Relayed uses the audit log to identify the inviter, attempts quarantine and kicks the added bot.
  7. Review and enable. Setup creates/reuses the Quarantined role below Relayed and applies channel isolation. If no logs channel was selected, setup can create a private Anti-Nuke logs channel.
  8. After initial setup, use Scam Catcher & Anti-Nuke settings to edit limits, roles, logs and exemptions directly without repeating channel-isolation setup.
  9. The server owner can turn on Scam Catcher under Scam Catcher & Anti-Nuke settings. It creates a top-level #do-not-type-here channel with a warning. Select kick, ban or soft-ban; any non-exempt message triggers the selected action.
  10. If roles are manually restored without releasing quarantine, later protection triggers reapply role removal. A previous quarantine record is not an exemption.
Limits & things to know
  • Relayed needs Manage Roles, Manage Channels, View Audit Log and Moderate Members, plus Kick Members for bot-addition protection. Its role must be above the target.
  • The owner, responding bot and explicitly trusted users are exempt. Authorization to edit is not automatic immunity.
  • Quarantine saves removable roles, removes them, applies Quarantined and attempts a 28-day timeout. Role order, managed roles and channel overrides can prevent complete containment; check the logs.
  • This reacts after an action. It cannot guarantee zero damage or restore deleted channels/roles and past bans/kicks.
  • Authorized release restores saved roles only when they still exist and can be managed. Disabling protection does not automatically release quarantined members.
  • Scam Catcher is off by default and only operates while Anti-Nuke is enabled. The owner, authorized Anti-Nuke roles, trusted users and bot/webhook/system messages are exempt from this trap. Authorization alone does not exempt a person from the normal destructive-action limits.
  • Kick allows rejoining. Ban blocks rejoining. Soft-ban bans, removes the preceding 24 hours of messages, then unbans. If unbanning fails, the incident is logged and staff must unban manually. The bot needs Kick Members or Ban Members and a higher role than its target.
  • Any message in the trap, including an accidental legitimate message, triggers removal. The trap is not proof of a hacked account. Turning it off keeps the channel. Failures and actions are logged; closed DMs do not stop enforcement.

Commands

/quarantine remove member

Use Discord's command picker for current required fields. Prefix equivalents use your server's configured prefix.

Back to topics ↑
Plus

Applications

Publish recruitment forms and review submissions privately.

Set it up

  1. Open Applications, enable the module and choose the panel channel, private review channel and optional reviewer/acceptance roles.
  2. Choose Components V2 and a layout, start from scratch or import supported JSON. Customize the live preview.
  3. Add application options, each with its own name, description and questions. Collapse options while editing. Up to 20 applications and 25 questions per application, with up to 1,000 characters per question are supported.
  4. Choose a dropdown or buttons, with optional custom labels and Discord button styles.
  5. Choose Direct messages or Discord form for answers. Save and publish the panel.
  6. For DMs, applicants answer one question at a time, then click Submit application. Review pending submissions in the dashboard or private review channel.
  7. Accept or decline with an optional reason. Relayed attempts to DM the decision and reason to the applicant.
  8. In a Components V2 option, use Emoji (optional) to place an icon before its dropdown label and button text. Paste one regular emoji, a custom Discord emoji code such as <:name:123456789012345678>, or its ID. The preview updates as you type. Save and publish the panel to update the Discord message.
Limits & things to know
  • DM applications have two total hours from starting; answers are up to 1,000 characters each and text only. Type cancel or use Cancel to stop. Only one active DM application per member per bot is allowed.
  • Saved DM progress survives restarts. An expired draft cannot be submitted. Discord forms paginate automatically: up to five short questions per page, with fewer when long questions need additional display space.
  • A failed decision DM does not undo the review. Pending-review duplicates are blocked. A single-option dropdown can be selected again after dismissing a form.
  • Acceptance roles can include staff permissions, but must be below both the reviewing member and the bot, and cannot be @everyone or managed integration roles. The server owner is exempt from the reviewer hierarchy check.
  • Forms are for community participation. Do not request passwords, payment-card details, identity documents or other unnecessary sensitive information.
  • New review messages show every answer in full when the complete application fits Discord embed limits. Otherwise, the review message attaches one UTF-8 text file with every full question and answer and no shortened previews. Accept/Decline controls remain available. Existing submissions are not automatically reposted.
  • Application questions can be up to 1,000 characters each in both DM and Discord-form delivery. Forms display long questions in full above their answer boxes and paginate automatically; short-only forms retain five questions per page. Answers remain limited to 1,000 characters. Review messages show full content or attach a complete text file if Discord embed limits would be exceeded. The complete Components V2 panel configuration is limited to 48,000 characters.
  • Each option uses the same emoji in its dropdown and direct button. Blank means no icon. Static and animated custom emojis must be available to the bot through a server it is in or its own application; unavailable custom emojis are rejected before publishing. Custom Bot preserve explicitly configured accessible panel emojis and continue stripping unavailable default Relayed emojis. Discord dropdown placeholder text stays text-only. Emoji configuration does not grant channel, role or ticket access.
  • Application eligibility & cooldowns lets managers select a saved form, choose a reapply cooldown in hours (0 disables it), and block roles or Discord user IDs for that form. Cooldowns start after successful submission, including accepted or declined applications, not when a draft is opened.
  • Eligibility is checked both when opening the form and submitting it, including DM applications. Existing pending-application limits still apply. Restrictions save immediately and persist across restarts.
Back to topics ↑
Free

Staff management

Record promotions, demotions and infractions with editable notices.

Set it up

  1. Open Staff management → Ranks & permissions. Select which roles may run promote, demote and infract; configure the available ranks and log destination.
  2. Open Message designs. Pick a promotion, demotion or infraction template and edit its text, fields, images and preview.
  3. Save the message design for future actions. Templates replace the current unsaved design, so save or back it up first.
  4. Use Actions & history or a configured command. Select the member, appropriate rank and reason; review the action before submitting.
  5. Search/filter retained staff records and export the available history as CSV when needed.
Limits & things to know
  • There are nine starter templates, three per action. Rank changes obey Discord hierarchy; managed roles and @everyone cannot be assigned.
  • Infractions are records, not automatic moderation punishments.
  • Treat staff records and exports as private. Keep access limited to the relevant team.

Commands

/promote member rank reason/demote member rank reason/infract member reason

Use Discord's command picker for current required fields. Prefix equivalents use your server's configured prefix.

Back to topics ↑
ER:LC connection is Free

ER:LC integration & staff workspace

Connect a private game server, view live activity and manage staff shifts.

Set it up

  1. Open ER:LC integration. Enter only a server API key you are authorized to use, then save and test the connection.
  2. If remote commands are denied, follow the private-server authorization link shown for Relayed in the ER:LC owner dashboard. Read access does not itself grant command access.
  3. Choose reviewer roles for staff access. Show the permanent staff join code and share it privately with your team.
  4. Staff sign in at /staff and request access with that code. A manager or configured reviewer approves or denies them; reviewers must have approved staff access themselves.
  5. Approved staff open /staff, select their server, and choose Server staff or a department under Your shift. Start/End shift follows the selected team’s permissions and ledger.
  6. Server managers can use Run command in the integration. Review carefully: commands execute in game immediately.
Limits & things to know
  • Codes remain valid until rotated; rotating invalidates the old code. Having a join code alone does not grant staff access.
  • Private server keys are encrypted and are not returned to dashboard users or settings exports. Never paste keys into support chat.
  • Player capacity comes from ER:LC, including 50-player servers. Displayed activity may be delayed, and the last successful update is shown.
  • Status requests share a cache and observe cooldowns. Repeatedly reconnecting will not bypass ER:LC rate limits.
  • Recent ER:LC command logs can include player names/IDs, command text and timestamps. Keep dashboard and staff-workspace access appropriate.
  • This is ER:LC integration, not Roblox account verification. A Roblox verification module is not currently available.
  • The ER:LC connection, staff workspace, shift tools and approval management are free. Their configured permissions still apply.
  • In-game command logs can send moderator/executor, command and ER:LC timestamp to a selected private Discord channel. Enable them in ER:LC integration and save. A connected key and command-log read access are required.
  • Optional mass-command alerts ping one specified Discord member for kick/ban targeting all, others, everyone or *. The person must be in the Discord server and able to view the log channel. No everyone/role ping is generated.
  • Logging checks about every five seconds, subject to ER:LC rate limits while the bot is online, sharing the existing ER:LC cache and rate-limit backoff. It uses the recent history ER:LC supplies; activity outside that window during an outage can be missed. It does not backfill old history on activation or execute commands. Delivered-entry fingerprints persist to avoid ordinary replay after restart. Discord delivery failures retry while the event remains available.
  • The staff workspace at /staff has duty controls on the left, live server/player activity in the middle and moderator actions on the right. Approved staff sign in using their server’s existing code. Server managers configure Record punishments, Execute kick/ban, Announcements and permission to act on game staff in ER:LC integration > Moderator workspace. Unselected action roles restrict those actions to managers.
  • Player identity, Roblox ID, team, callsign and game permissions come from the connected ER:LC player snapshot. Search/select a player to populate the action form and view this server’s saved records. No Discord-to-Roblox account link is inferred. Data refreshes about every five seconds, subject to ER:LC rate limits through the existing shared cache; timestamps and errors identify stale data.
  • Record only saves a punishment record with reason and optional HTTPS evidence without sending a game command. Execute requires separate permissions and fresh player data, offers kick/ban for a selected individual, and requires review/confirmation. Announcements send :h. No mass-moderation shortcuts are offered. Ambiguous execution is marked unconfirmed and is not retried automatically; inspect the game before a new attempt. Submitted request IDs prevent ordinary duplicate execution.
  • An optional private punishment-log channel receives confirmed or recorded action embeds. Failed Discord log delivery does not erase the saved record. Department duty selection uses the department ledger; Server staff uses the existing server shift ledger and Shift Logging permissions if enabled. These ledgers are separate.
  • Moderator workspace settings also accept up to 20 saved reason/announcement presets, up to 120 characters per line. Staff may choose a preset or write their own; presets never execute commands by themselves.
  • Staff shift and action screens apply the confirmed action response directly, without waiting for an additional full workspace reload. Slow actions show unobtrusive pending feedback; failed actions remain unsaved and show an error. Moderation permission saves keep the current form in place. Reduced-motion preferences remain supported.
  • Moderator actions: enter a Roblox username to resolve the account and avatar, select Warn, Kick or Ban, then enter a reason. One HTTPS proof link at the bottom is optional. Warn records a warning; Kick/Ban require command permission and a matching live player. Account lookup does not verify game presence. Avatars have a fallback and lookups are cached for five minutes. Use Quick tools > Announcement for a server announcement.
  • The middle panel has Activity, Players, Punishments and Team tabs. Activity and Punishments support search, action/delivery filters, 15-entry pages and a pause/resume feed control. The saved-record feed contains the latest 100 entries; ER:LC commands use the history available from the provider. Open a log for its complete reason, time, moderator ID and proof links. Find a player filters the live list; View player history resolves a Roblox username (or a matching live player ID) and shows that server’s warning/kick/ban counts and latest 100 saved account records. Counts use all retained account records, excluding unconfirmed executions. Exact-target ER:LC command entries are shown separately; mass selectors and partial-name matches are not attributed to individual players.
  • Live ER:LC snapshots and command-log checks refresh about every five seconds when available. ER:LC must report a command before it appears; this is polling, not guaranteed instant push. Provider cooldowns and outages can delay updates. Failed Discord log deliveries are queued for retry across restarts; duplicates already delivered are skipped.
  • Remote commands keep ER:LC’s five-second command spacing and respect the full provider rate-limit reset. A command that times out or has an uncertain result is never automatically executed again. Reads are not paused by a command-only rate limit. Reconnect invalid keys or repair application authorization when prompted.
  • Command-log checks rotate across servers; disabled logging is skipped. Last checked confirms the server was polled, not that Discord received a message. Delivery failures appear in the command-log status.
  • Player search accepts live usernames, IDs, teams and callsigns. Press / outside a text field to focus it. Use Look up with an exact Roblox username for offline history. Selecting a player fills the moderation form. Reason presets fill editable text and never send an action by themselves.
  • Background live updates preserve the moderation draft, selected player, filters and list scroll. Drafts remain separate when switching servers in the same open page, but are not saved after a page reload or closing the tab. Pause feed freezes the visible log list and shows how many new entries are available.
  • Duty totals deduplicate people who are on both server and department shifts. Server and department times remain separate. Live snapshots check about every five seconds while visible; full team/workspace data refreshes about every 30 seconds. Connection details show snapshot age and errors. Pending, saved-only, confirmed and unconfirmed actions are clearly distinguished; click feedback never means an action succeeded.

Commands

/erlc

Use Discord's command picker for current required fields. Prefix equivalents use your server's configured prefix.

Back to topics ↑
Free

Sessions & voting

Publish startup, shutdown, full, low-population and interest-vote messages.

Set it up

  1. Open Sessions and choose the announcement channel, ping roles, join information and any connected ER:LC details.
  2. Expand Edit under Startup, Shutdown, Server full, Low population or Interest vote. The Sessions page keeps its existing layout; each type has its own Components V2 design. Older classic embed content is converted when a design is first opened.
  3. Edit text, images, text with thumbnail, divider spacing/line visibility and accent color. Move or remove content blocks. Move the Vote & join buttons block anywhere in the message. The preview updates as you type.
  4. For interest votes, customize Vote button text, emoji and blue/gray/green/red style. Customize the join label/emoji, show or hide the join button, and choose Vote/Join order. Join URLs still use your connected ER:LC code; Discord link buttons are gray. Set vote goal and a duration from 1 to 1,440 minutes in Session settings.
  5. Post the desired announcement. Members can add/remove interest votes. Authorized staff use /voters for the relevant vote.
  6. Start a session separately when ready; reaching a vote goal does not start one automatically.
  7. Add Extra buttons for HTTPS website links or colored private-answer buttons. Add Dropdown for information choices with private answers. Customize labels and regular or accessible custom emojis. These controls provide information only; they do not run game commands, grant roles or start sessions.
  8. Layouts & JSON contains four existing layouts, Start from scratch and Relayed session V2 JSON import/export. Applying a layout replaces unsaved message blocks while retaining button settings; save/export first.
  9. Use ER:LC placeholders in text, button labels and private answers. Click a placeholder to insert it into the last focused message-text or built-in button-label field, or copy it if none is focused. Test private answers in the preview, then Save the design.
Limits & things to know
  • Configure voters access in Moderation just like other commands. The configured prefix works too.
  • Announcements and votes are Discord messages; posting startup/shutdown does not itself run an in-game command.
  • API outages or delayed ER:LC data can affect live placeholders.
  • The voting button is labeled Vote. Clicking again still removes your vote; the vote count stays in the message content.
  • Existing session designs retain their prior default button labels/colors and vote windows. Saved design changes apply to the next posted announcement. Posted sessions retain their own design snapshot, and active votes keep their original voters and closing time.
  • Custom sessions allow up to 12 blocks and Discord’s 40-component limit, five buttons per extra row and 25 choices per dropdown. Each private answer supports up to 1,800 characters before placeholders. Custom control answers are private and suppress mentions. Dropdowns reset after a response when the message can be updated.
  • Custom emojis are checked for access before publishing. Custom Bot retain explicitly configured accessible session emojis. Invalid URLs, inaccessible emojis and component/expanded-text limits must be corrected before posting. Custom button URLs allow up to 512 characters.
  • Shutdown messages do not include the automatic server join button. The built-in Vote action is retained for interest votes; hide only the Join button if desired. Removing a content block does not remove the built-in vote action.

Commands

/session/voters

Use Discord's command picker for current required fields. Prefix equivalents use your server's configured prefix.

Back to topics ↑
Free

Welcome, goodbye & reaction roles

Greet members and offer safe self-service roles.

Set it up

  1. Open Welcome & goodbye. Enable the module and separately choose welcome and goodbye delivery, destinations and plain text or embed format.
  2. Use supported placeholders such as {user}, {username}, {server} and {count}. Preview the message and send a test.
  3. For a join role, enable Automatically give new members a role and select the ordinary member role. Save.
  4. Open Reaction roles to create a role-button panel. Name each button, select its role and choose a panel channel.
  5. Save and publish. Members click once to add a role and again to remove it.
Limits & things to know
  • Join/leave delivery requires Server Members access enabled for Relayed. Join roles apply to new joins; saving does not automatically backfill existing members.
  • Self-service and join roles must be below the bot and cannot carry moderation or management permissions. Privileged staff ranks belong in staff management instead.
  • Relayed needs Manage Roles and relevant channel permissions. Discord administrators cannot bypass role hierarchy.
Back to topics ↑
Core editor is Free

Message editor & drafts

Design classic embeds or custom Components V2 messages with live previews and working controls.

Set it up

  1. Open Embed editor, or use the message editor inside Tickets, Applications, Sessions, Staff management or Welcome & goodbye.
  2. Choose the message you want to change. Use a starter layout or start from scratch where available.
  3. Edit text, colors, images, fields and supported controls. The Discord-style preview updates as you type.
  4. Use supported JSON import to load a compatible design. An arbitrary Discord/Discohook document may need adjustment.
  5. Save the design. For posted panels, use Save & publish to replace the published version; a draft alone does not change Discord.
  6. Use Past saves to review available history. Keep separate exports for important designs.
  7. Unfinished editor work saves to this device as you type and syncs privately to your account/server. Returning with unchanged saved settings restores the draft, open sections and page position. Saved settings and cloud-synced current drafts survive bot/server restarts.
  8. New custom message starts in Components V2; existing classic messages retain their format. Choose Message style to switch a custom message. Add, move or remove text, image, text with thumbnail, divider, button-row and dropdown blocks.
  9. Buttons can open HTTPS links or show editable private responses. Dropdown options have a label, optional description/emoji and an editable private response. Test those responses in the preview.
  10. Choose a saved-message name and destination. Save design stores custom messages without posting; Save & publish message updates their published copy.
  11. Use the V2 Import / export layout JSON section for this editor’s Relayed V2 schema. Classic embed JSON import remains available in Classic embed mode.
  12. For a saved custom message using Classic embed, use Link buttons → Add link button below the embed fields. Set each label, HTTPS URL and optional emoji; add up to five or remove rows. The preview updates immediately. Save design, then Save & publish message. Existing V2 messages use their button-row blocks.
  13. In custom Components V2 messages, add a Dropdown block and set an option’s When selected action to Toggle a role. Choose an ordinary Discord role below the bot, then save and publish. Members select that option to add or remove that role; confirmations are private.
Limits & things to know
  • Embed accent colors accept supported hex colors; Discord button styles are limited to blue, gray, green and red.
  • Existing tickets and previously sent notices may retain their old design. Future actions use saved settings.
  • Draft history is bounded and is not a full server/database backup. Browser drafts may be device-specific. Do not put credentials into message designs or imported JSON.
  • Automatic current-work recovery is separate from Past saves. It never publishes messages or enables saved server changes by itself. When saved settings changed since the draft was created, choose Restore unsaved draft and review before saving. A newer conflicting cloud draft does not silently overwrite your device copy. The current draft limit is 192 KiB per editor, with up to 100 active editor scopes per account/server. Existing version-history snapshots retain their separate 48 KB/100-entry limit. API keys, passwords and staff/support access codes are excluded from draft snapshots. Browser storage limits or network outages can delay backup; the status line reports whether cloud sync is pending. Uploaded files, private administrative forms and unfinished setup dialogs are not covered by editor-form recovery.
  • Custom V2 limits: 12 blocks, Discord’s 40-component limit, 3,800 public-text characters, 1,800 characters per text block/private answer, five buttons per row and 25 options per dropdown.
  • Response buttons use blue/gray/green/red; Discord link buttons use its fixed gray style. Emoji fields support regular or accessible custom Discord emojis.
  • Custom dropdowns and response buttons show private answers; they do not grant roles, open tickets or execute commands. Use the relevant module for those workflows.
  • Current published controls use a saved design snapshot until republished. Mentions in custom messages and private answers do not notify people.
  • Changing a published V2 message to Classic creates a replacement. Relayed attempts to disable the previous V2 controls; review any warning if that fails.
  • Image and thumbnail descriptions are optional. Blank descriptions are omitted from the Discord payload, so existing designs can publish without filling them in.
  • Classic saved-message link buttons are included when a custom command sends that design. They use Discord’s fixed gray website-button style. Labels allow 80 characters and HTTPS URLs allow 512. Regular and accessible custom emojis are supported, including on custom bot.
  • Inline message editors include Layouts & JSON: start with Simple message, Message with details, or Image announcement. Paste one embed object or a Discord message containing embeds; Show current JSON displays the editable embed. These load unsaved drafts. Review the live preview and save; automatic details and actions remain supplied by the module.

Commands

/embed

Use Discord's command picker for current required fields. Prefix equivalents use your server's configured prefix.

Back to topics ↑
Free

Logging & activity

Route moderation, ticket, staff and server events to the right channels.

Set it up

  1. Open Logging and choose destinations for the event types you need. Keep ticket and personnel records in private channels.
  2. Enable the relevant log types, save and use Send test to verify delivery.
  3. For transcripts, also confirm the private ticket-log destination in the selected ticket panel.
  4. If delivery fails, check View Channel, Send Messages, Embed Links and Attach Files, plus any category overrides.
Limits & things to know
  • A test verifies access at that moment. Later permission changes, deleted channels or service outages can interrupt delivery.
  • Discord-hosted logs, transcripts, exports and DMs remain with their recipients until those recipients delete them.
  • The Analytics view contains sample/demo visualizations and should not be treated as a complete production analytics report.
  • Service-wide operational totals combine connected Relayed and active online custom bot, deduplicating servers by Discord server ID. Member totals include bots and can count the same person in different servers. Activity for white-label-managed servers is read from that bot’s isolated retained records.
Back to topics ↑
Paid options

Relayed Plus & custom bot

Understand paid modules and the customer-bot setup process.

Set it up

  1. Open /pricing and choose a plan. Sign in with Discord if prompted, choose the server in the dropdown and continue to Stripe. Only servers you manage are listed; Plus requires Relayed installed. The chosen server ID is carried into checkout.
  2. Plus covers Applications, Partnerships and additional ticket panels. All other modules, including Staff management, Sessions and ER:LC integration, are free. Existing first-100-server lifetime grants remain associated with their server ID.
  3. For Custom Bot, choose the server and billing interval on /pricing. Hosting capacity is checked and reserved before Stripe checkout. Confirmed payment automatically enables setup for that purchaser and server; the success redirect alone never grants access.
  4. Follow /white-label: create your own Discord application, enable Server Members and Message Content intents as needed, paste its Application ID to generate an invite restricted to the purchased server, then enter the bot name and token privately. The server invitation and token are checked. Paid setups start hosting after connection.
  5. Configure its name and artwork, enable the required Discord intents, and follow the setup/start controls. The bot needs role hierarchy and channel access just like Relayed.
  6. Review imported same-server settings after the first start. Republish existing panels through the customer bot; Discord messages belong to the bot that posted them.
  7. Support-approved one-time Custom Bot plans can cover one bot in up to two approved servers for one calendar year from payment. Invite the same application to both servers before connecting its token once at /white-label. Branding and hosting are shared; each server keeps separate module settings and records. Start/stop affects both servers. Access ends on the payment anniversary without an automatic renewal or charge; the bot and settings are retained. A separate recurring subscription is not canceled by a custom plan. Contact support for changes.
Limits & things to know
  • Plus costs $2.99 USD/month or $22.99 USD/year per server (save $12.89, about 36%). Custom Bot costs $4.99 USD/month or $44.99 USD/year (save $14.89, about 25%). Annual plans charge the full annual amount upfront and renew yearly. Checkout shows applicable taxes and terms.
  • A trial ends by stopping hosting and preserving setup; it is not permanent free hosting. Suspension or removed hosting access also stops the worker.
  • Customer bot credentials are encrypted. Custom Bot data and processes are separate; unavailable Relayed custom emojis are removed from customer-bot messages.
  • Owners of eligible Plus servers and subscribers can receive the Plus role when present in the support server and role synchronization is permitted.
  • Removing a bot does not cancel a paid subscription. Use the available billing portal or contact support to manage cancellation.
  • Subscriptions renew through Stripe. Manage subscription on /white-label opens the purchaser-only billing portal. Scheduled cancellation retains hosting through the paid period; inactive or expired paid access stops hosting while retaining the bot and settings. Failed or disputed payments may suspend access. Existing manually managed bots and older Payment Link purchases require support to review or migrate; they are not silently reassigned.
  • The customer owns the Discord application. Relayed does not create that application or accept its terms for the customer. A hosting slot is reserved for checkout; pending/recoverable subscriptions can continue holding capacity. Abandoned reservations expire. Setup support is available at /support and in the support Discord. Never send a bot token in support messages.
  • The lifetime promotion has ended. New installations and re-joins receive no lifetime grant. Existing lifetime grants remain valid. Open Relayed Plus to choose Monthly, Yearly or Custom Bot; confirm the preselected server before continuing to Stripe.
  • Custom Bot setup shows specific connection failures. Use Check connection to validate the saved bot token and approved-server invitations with Discord. HTTP 401 means the saved token was rejected; enabling intents does not repair it.
  • For a connected bot, expand Reconnect bot / update intents. Paste the current token privately, or leave it blank to keep the saved one and only change the intent checkboxes. Save connection & restart verifies the same bot identity and every approved server, retains settings and restarts active hosting.
  • A bot being invited does not mean it has an active gateway connection. Enable Server Members Intent and Message Content Intent in Discord before requesting those features in hosting. Never send a token in support chat.
Back to topics ↑
Help availability varies

Ask Relayed & troubleshooting

Get product guidance without sharing secrets or private server records.

Set it up

  1. Open Ask Relayed in the bottom-right of the website or dashboard and sign in if prompted.
  2. Describe the module and what you are trying to do. The assistant uses maintained documentation and supports follow-up questions.
  3. For missing commands, check module access, configured issuer roles, Use Application Commands and whether the correct bot is active.
  4. For missing channels or roles, use Refresh roles & channels. For failed role changes, check Manage Roles and role order.
  5. For rate limits, wait for the displayed cooldown and avoid repeated refresh/reconnect attempts.
  6. If the guide is insufficient, join the support server and describe the issue with sensitive details removed.
Limits & things to know
  • Ask Relayed gives guidance only. It cannot inspect or change your configuration, confirm payments, read private tickets or perform staff actions.
  • Submitted questions and recent conversation context go to OpenAI. Do not submit credentials, private ticket content, identity documents or payment details.
  • Generated answers can be wrong. Limits or outages may temporarily disable help. The separate AI integration module remains planned. Custom commands have their own setup guide.
  • Documentation describes current behavior and is updated with feature changes. Public demos simulate interactions and do not change your server.
  • In the Relayed support server only, open #reviews and click Submit a Review. Enter a rating from 1–5 and written feedback. Submissions are posted publicly in #feedback with your Discord identity, rating and time. The review panel shows the average and count of published review-form ratings, updated after each successful submission; unrated feedback messages are excluded. Please leave five minutes between reviews. This is not a configurable customer-server module.

Commands

/support/help

Use Discord's command picker for current required fields. Prefix equivalents use your server's configured prefix.

Back to topics ↑
Free

Shift Logging

Start and end duty in Discord, correct hours, and optionally track weekly staff requirements.

Set it up

  1. Open Shift Logging and choose Set up Shift Logging. The full-screen guide covers roles, logs and weekly requirements.
  2. The server owner chooses authorized setup roles. Only the owner can change that list. Dashboard management access is still required. Choose tracked staff roles and separate roles for start, end and hour corrections. Unconfigured commands are owner-only.
  3. Optionally select a private log channel and enable DM notices for corrections and weekly infractions.
  4. Optional weekly targets: shift hours and messages across all server channels the bot can see. Messages from bots, webhooks and system events are excluded; only aggregate counts are retained, not message text.
  5. Save and enable. Use /shift manage in Discord for a private personal embed with Start, Pause, Resume and End buttons, completed shift count, total/average duration, current shift and weekly hours. /shift start and /shift end remain available. Paused time does not count, and shift state survives restarts.
  6. Use /shift admin member action reason hours to add/remove hours or set this week’s hours. Decimal hours are supported. Cancel discards an active shift’s unsaved time; past shift history is retained. Corrections are logged with the actor and reason. Choose Remove a completed shift and select its shift-id to void a saved shift while preserving its correction trail. View hours shows a selected member’s weekly and total time without changes or a required reason.
  7. In setup, customize the management-panel title, description, accent color and optional HTTPS image. Description placeholders: {status} and {user}. Start/resume uses configured start roles; pause/end uses configured end roles. Buttons belong to the person who opened the panel, and permissions are checked on every use.
Limits & things to know
  • Weeks run Monday–Sunday in UTC. Requirement changes start next Monday. Staff enrolled midweek are not evaluated until a full week has completed. Existing cumulative hours are preserved; historical chat counts are not backfilled.
  • One automatic staff infraction records missed hours, messages, or both. It does not timeout, ban or change ranks. Server Members access is required for automated weekly evaluation; roster failures defer the check. Members must still have a tracked staff role at evaluation.
  • The bot checks once a minute. Weeks with detected monitoring gaps over five minutes are skipped, avoiding infractions based on incomplete tracking. Short outages may miss messages; buffered counts are saved every minute and on clean shutdown.
  • Shift Logging is free and is configured separately from Staff management. Shift actions are Discord commands; this module has setup only in the dashboard. Start/end require a tracked staff role and their configured command role, with a server-owner override.
  • Hours added/removed/set affect the current UTC week and cumulative total, never another week. Cancelling active time does not remove completed shifts. Removing a selected completed shift marks it voided and excludes its time while retaining its audit trail. Already-issued weekly infractions are not automatically revoked.
  • Weekly infraction records are idempotent per staff member and week. Old records are retained until operator removal or a verified deletion request.

Commands

/shift manage/shift start/shift end/shift admin

Use Discord's command picker for current required fields. Prefix equivalents use your server's configured prefix.

Back to topics ↑
Plus

Partnerships

Use saved posting defaults, collect an ad in a ticket, and publish only after staff approval.

Set it up

  1. Open Dashboard → Partnerships. Choose the default posting channel, default ping (@everyone, @here or No ping), authorized command roles and Plain text or Embed. Save and enable; it starts disabled. At least one staff role and a default channel are required to enable through the dashboard.
  2. Inside an open Relayed ticket, staff runs /partnership or the configured prefix followed by partnership. Relayed uses the saved defaults and immediately asks the ticket opener for their ad. Nothing begins automatically from ordinary chat.
  3. Override one request with slash channel/ping options, or use !partnership [everyone|here|none] [#channel] with your server’s prefix. Explicit No ping overrides a saved broad ping. Custom role pings are not supported.
  4. The ticket opener sends their next text message (up to 1,900 characters; use image links, not attachments). Relayed pings the initiating staff member with the ad preview, destination, selected ping and invite-check warnings.
  5. The initiating staff member, still authorized, must click Approve & post before anything publishes. They can instead Request changes with a reason or Deny with an optional reason. A replacement ad needs a new approval. The requester receives the decision; approval includes a direct post link.
Limits & things to know
  • Requires Message Content access, including separately for custom bot applications. Both staff and bot need View Channel and Send Messages in the destination; embeds also require Embed Links. @everyone/@here requires Mention Everyone for both. Permissions and the open ticket are checked again before approval.
  • Only the selected broad ping is permitted in the published message. Ad-authored everyone/here mentions are neutralized; role and user mentions cannot notify. Review/request messages notify only the intended requester or initiating staff member.
  • Duplicate protection defaults to 24 hours (configurable from 1–720 hours). It checks submitted ad fingerprints, invite codes and partner-server IDs from verified Discord invites. Unconfirmed or interrupted publishing requires checking the destination before retrying; it is not automatically resent.
  • Invite checks inspect at most five Discord invite links when the ad is submitted and show missing, invalid, expired or unverified links as warnings. A warning does not approve or deny the ad; staff must decide. External website URLs are not fetched by this check.
  • Customize request, approval, denial and request-changes messages using {user}, {channel}, {link} and {reason}. Recent history lists up to 30 requests with status and published-message links and can be searched locally by Discord ID/status.
  • One active request per ticket, a 48-hour usable deadline, persistent across restarts. Expiry prevents action but does not automatically erase stored records or published messages. Tickets are not automatically closed. Existing configured servers may continue using slash channel overrides before saving a default; role-ping requests from older versions should be restarted with the new ping choices.

Commands

/partnership [channel] [ping]!partnership [everyone|here|none] [#channel]

Use Discord's command picker for current required fields. Prefix equivalents use your server's configured prefix.

Back to topics ↑
Free

Custom commands

Create prefix shortcuts for text, embeds, saved messages and working panels.

Set it up

  1. Open Custom commands → Set up your first command. The full-screen guide has four steps.
  2. Name the command without a prefix. Add up to five aliases and an optional description. Start with a reply, embed, support, application, saved-design or partnership-information preset. The chosen starter has an orange highlight, checkmark and Selected label.
  3. Add one to five responses. Choose plain text, a new embed, a saved custom message from the Embed editor, a published ticket/application/reaction-role panel, or the server dashboard link.
  4. For a plain-text or new-embed reply, open Link buttons → Add link button. Enter a label, HTTPS URL and optional regular/custom emoji. Add up to five links; previews update as you type. Remove a row to remove that button. Saved-message replies use the links saved in the Embed editor.
  5. Choose the current channel, a specific channel or DMs. Interactive server panels and saved V2 messages require a server channel. Publish linked panels in their own module first.
  6. Choose Everyone explicitly, or select allowed roles. Optionally restrict usage to selected channels. Set a per-person cooldown from 1–3,600 seconds. The default is five seconds.
  7. Review, enable and save. Run your configured prefix plus the name, for example !rules, or use /custom name:rules. Each server supports up to 25 commands. Edit, disable, delete or search commands from the module.
Limits & things to know
  • Prefix commands require Message Content access for the active bot. /custom works without Message Content. Custom names do not become separate slash commands. Built-in command names cannot be replaced.
  • New text/embed replies support {user}, {username}, {server}, {channel}, {args} and {1} through {9}. Variables are inserted into text only; saved designs retain their own content. Custom replies suppress mention notifications.
  • Use the Embed editor for detailed Components V2 layouts, images, dividers, buttons and dropdowns, then select that saved message in a command. Simple embeds in the command wizard have title, description, color and image fields.
  • Saved message commands use the latest saved design. Each posted V2 message or panel retains a stored snapshot, so later command uses do not replace existing panels. Existing copies remain when a command is disabled or deleted; disable the linked module or remove the Discord message when appropriate.
  • You and the bot must be able to view and post in each server response channel. Sharing a published panel also requires you to view its original channel. Ticket privacy, application review roles, reaction-role safety and Plus checks still apply. Custom commands do not run arbitrary code, grant moderation powers or bypass module permissions.
  • The partnership starter sends editable partnership information. Staff still run /partnership inside a ticket to collect and approve advertisements. It does not automatically approve an ad.
  • Text replies are limited to 1,800 characters before variables; new embed titles to 200 and descriptions to 3,500. Discord limits are rechecked after variables are inserted. DMs can fail when closed. Delete trigger applies only to prefix messages and requires Manage Messages.
  • Unfinished wizard values are saved on this browser when changed; Save command persists the command on the server across restarts. Execution has a server-wide burst limit as well as per-person cooldowns. If Discord fails partway through several deliveries, check for already posted responses before retrying.
  • Website buttons use Discord’s fixed gray link style and open their configured URL. They do not run bot commands. Custom emoji access is checked before delivery. Link URLs are limited to 512 characters and labels to 80; arbitrary hex button colors are not supported.

Commands

/custom

Use Discord's command picker for current required fields. Prefix equivalents use your server's configured prefix.

Back to topics ↑
Free

Anti-spam

Choose an exact number of messages in a rolling time window.

Set it up

  1. Open Auto moderation > Anti-spam and enable it.
  2. Choose 2–100 messages within 1–120 seconds, add optional role/category/channel exceptions, then Save anti-spam.
  3. At the limit, Relayed removes the recent message burst and continues removing messages while the count remains over the limit.
Limits & things to know
  • Counts per member across non-exempt channels. Owners, bots, Administrator and Manage Server members are exempt.
  • Needs View Channel and Manage Messages. Runs while Relayed is online; counters reset on restart. Discord spam detection remains a separate optional native filter.
  • Deleted bursts can add Auto Punish points once per configured window, if Auto Punish is enabled. No message text is retained by the counter.
Back to topics ↑
Free

Import settings and records

Preview and import compatible JSON from Server settings.

Set it up

  1. Open Server settings > Import and download the template for the supported format.
  2. Upload a JSON file up to 200 KB. Choose Add to existing or Replace selected data.
  3. Select supported sections, preview the counts, confirm and import.
Limits & things to know
  • Supported sections are general settings, log destinations and switches, historical Roblox moderation records and completed shifts. Native ERM exports require conversion to the template format. Up to 500 moderation records and 500 completed shifts are accepted per file.
  • Add keeps existing records and skips matching imported IDs; supplied settings update matching values. Replace clears only selected supported sections. No punishments, messages, role changes or channel creation run. Use channel IDs belonging to this server.
  • Active shifts remain active. One recovery snapshot is retained. Undo is blocked if the relevant data changed after the import. Credentials, other module settings and active tickets are not imported.
Back to topics ↑
Free

ER:LC server automation

Optional time, weather and exact-account username protection.

Set it up

  1. Connect your ER:LC server and authorize remote command access, then open ER:LC integration > Server automation. All three automations start disabled.
  2. Time Sync: choose an IANA time zone. It sets the game clock about every five minutes while players are online. Set in-game Length of Day to 1440. Daylight saving changes follow the selected zone.
  3. Search for a city at the top of Server automation. Suggestions include region and country; selecting one fills the time zone, latitude and longitude for Time Sync and Weather Sync. Search supports typing and arrow keys/Enter. You can still edit the fields manually. Weather Sync: choose a public location. Disable Automatic Weather Cycle in-game; ER:LC Premium Settings Pack is required. Forecasts are cached for at least 15 minutes and longer when the provider requires it.
  4. Enable username protection only if you want accounts whose usernames begin with all or other banned. Checks use live ER:LC players and ban a validated numeric Roblox ID, never an all/others selector. Legitimate matching names are also affected.
Limits & things to know
  • Time and weather updates and bans share existing command rate limits. They may be delayed by other commands, outages or ER:LC limits. The scan runs about every 10 seconds while Relayed is online. No commands run in an empty/offline server.
  • Settings and execution status persist. Unconfirmed ban attempts are held for staff review and shown on the integration page, rather than automatically repeated. Disabling protection does not unban existing accounts.
  • Weather forecasts come from MET Norway under CC BY 4.0, adapted to clear, fog, rain and thunderstorm; snow and sleet map to rain. Forecasts may differ from current observed conditions.
  • The selected coordinates are sent server-side to MET Norway, without Discord credentials or the ER:LC key. Use a public city location. Configure a single automation source when multiple Discord servers connect to the same ER:LC server.
  • City suggestions use a bundled GeoNames database (CC BY 4.0), including many towns and cities. Queries stay on Relayed’s server and are not sent to a third-party geocoding API. Very small or recently changed locations may not appear; use the manual fields instead.
Back to topics ↑
Free

Giveaways

Customize a giveaway, collect entries and draw winners automatically.

Set it up

  1. Open Dashboard → Giveaways. Enable the module, select manager roles and optionally a default channel. Server managers always have access.
  2. Customize Classic embed or Components V2, text, accent color, images, footer and the entry button. Preview active/ended messages; save before creating. Changes apply to new giveaways.
  3. Run /giveaway create with a prize and duration such as 30m, 2h or 3d. Optionally choose a channel and 1–20 winners.
  4. Members click to enter and click again to leave. The count updates within a few seconds. Winners are drawn at the saved deadline.
  5. To finish early, run /giveaway end and search the active prize names, or paste the original giveaway message link.
  6. Joining or leaving saves the entry and immediately requests a participant-count update. No background batching delay is added. Discord may still delay edits; failed edits retry without losing entries.
Limits & things to know
  • Durations range from 1 minute to 30 days, with up to 20 active giveaways per server.
  • Placeholders: {prize}, {host}, {ends}, {ended}, {winner_count}, {entries} and {winners}. Keep {winners} in the ended message.
  • Buttons support blue, gray, green or red; accent colors accept hex. Custom emojis must be available to this bot.
  • Entries and results survive restarts. If Discord or the bot is unavailable, endings may be delayed; saved results are retried without drawing again.
  • Only entrants still in the server and non-bot accounts are eligible. Prizes must be delivered by the host; Relayed does not charge entrants or deliver prizes.
  • The preview switch below the message shows active/ended examples only; it does not end a real giveaway.

Commands

/giveaway create/giveaway end

Use Discord's command picker for current required fields. Prefix equivalents use your server's configured prefix.

Back to topics ↑
Free

Role dropdowns

Let members manage their own roles through a private dropdown.

Set it up

  1. Open Reaction roles and choose Buttons or Dropdown, then Classic embed or Components V2.
  2. Choose up to 20 safe member roles below the bot. Add labels, optional descriptions and emojis; edit the panel message.
  3. Save and publish. The Self Roles dropdown appears directly on the message. Select roles to add them; select them again to remove them. Personal role changes are confirmed privately.
  4. New role panels use Components V2 and a direct dropdown by default. Add, remove or reorder text, images, dividers and the role selector, set an accent hex color and dropdown placeholder, and edit each role’s label, description and emoji. The preview updates as you type. Existing panels need republishing to adopt the new controls.
Limits & things to know
  • Only configured self-service roles change. Moderation/management roles, managed roles and roles above the bot cannot be assigned.
  • Republish changes to an existing panel. Dropdown defaults are personal, never shared across members.
  • Restored local drafts can be saved normally. If another manager changes the saved role panel after you loaded it, refresh before replacing their changes.
Back to topics ↑
Free

Ticket logging & numbering

Separate transcripts from activity notices and choose the next ticket-number minimum.

Set it up

  1. Open Tickets → Logging & numbering. Choose an activity channel and a separate private transcript channel.
  2. Choose a starting ticket number. The next-number preview respects existing higher counters. Save these settings independently of your panel design.
  3. Use /transcript inside a ticket to send its export to the configured private destination. Closing also archives there before deletion.
Limits & things to know
  • Support staff access checks still apply to transcript exports.
  • Without a separate transcript channel, legacy ticket logs remain the fallback.
  • A failed transcript delivery retains the ticket channel. Activity notices contain no transcript attachment when routed separately.
  • The number minimum applies across the server, does not reset a higher counter and does not rename older tickets.

Commands

/transcript

Use Discord's command picker for current required fields. Prefix equivalents use your server's configured prefix.

Back to topics ↑
Free

Staff workspace controls

Manage shifts and save logs with immediate feedback.

Set it up

  1. Open /staff and choose your approved server. The desktop layout places shifts, log creation and activity side by side.
  2. Start or end your shift. Starting/Ending is shown immediately, then replaced by the confirmed state; an error restores your previous state.
  3. Enter a Roblox username, choose Warn, Kick or Ban and add a reason. Create log saves the record without executing a game command. Proof remains optional.
  4. A pending card appears while the log saves. If saving fails, the form is preserved and the provisional card is removed.
  5. If permitted, explicitly enable Also run this in game for a kick or ban. These live commands retain a separate review and confirmation.
Limits & things to know
  • Opening forms, selecting a punishment or switching tabs never sends a game command.
  • An immediate pending state is not a success confirmation. Check the result message and delivery state.
  • Existing server access, role permissions, command checks and request deduplication still apply.
  • The layout stacks on smaller screens and respects reduced-motion preferences.
  • The default desk shows shift, log creation and recent logs. Open More options for proof/saved reasons, Filters for log filters, and More tools for additional tools and server status.
  • Log cards show the subject player’s Roblox headshot when available. Existing records may fill in on the next live refresh; unavailable headshots show an initial.
Back to topics ↑
Free

Try the feature showcase

Explore Relayed with safe sample workflows.

Set it up

  1. Open the homepage Features section and choose See all features to expand every card.
  2. Choose Try on a card or a Showcase tab. Follow the sample member and staff actions, then use Reset demo to start over.
  3. Examples use sample data only. They do not contact Discord, run game commands, change roles or make purchases.
  4. Custom Bot is the new name for the former White Label service; existing setup links continue working.
Limits & things to know
  • Examples illustrate supported workflows and do not reproduce private server conversations.
Back to topics ↑
Free

Find your module settings

A consistent layout for configuring and using Relayed.

Set it up

  1. Choose a module from the sidebar. Use its section tabs to separate activity, configuration and message design.
  2. Tickets: use Tickets for open requests, Panels for the message and support options, and Settings for blacklists, transcript destinations and numbering.
  3. Applications: choose Submissions, Forms or Eligibility. Reaction roles: choose Roles, Message design or Settings. Welcome & goodbye: choose Welcome, Goodbye or Auto roles.
  4. Auto moderation: choose Spam, Links, Discord filters or Punishments. Giveaways: choose Giveaways, Settings or Message design. Partnerships: choose Activity or Settings.
  5. ER:LC integration: choose Overview, Connection, Staff access, Commands or Automation. Sessions: choose Announcements, Message designs or Settings. Logging: choose Channels or Test delivery.
  6. Anti-Nuke: complete initial setup, then use Overview, Quarantines, Incidents or Settings. Shift Logging and Custom commands keep their guided setup.
Limits & things to know
  • Section tabs keep unsaved form inputs on the current page. Use each section’s Save control to persist changes.
  • Changing the layout does not change command permissions, execute game commands, create channels or publish messages.
  • Discord previews retain your configured message and button colors.
Back to topics ↑