Discord integration
The Last Command bot brings schedules, rosters, train duties, match signup and alliance notifications into Discord. Slash commands work on every tier; automatic posts, reminders and battle-plan views require Pro.
// ON THIS PAGE
Install and link the bot
- 1
Add Last Command to Discord
Use the Add to Discord button on the Discord bot page. Choose a server where you have Manage Server permission.
- 2
Generate a link code
In Last Command, open Settings → Discord and generate a short-lived bot link code. This is different from the alliance member join code.
- 3
Link the server
In Discord, run /lc admin link code:YOUR-CODE. The code anchors the server to the alliance and links the officer who minted it.
- 4
Choose notification channels
Pro alliances run /lc admin channel action:set channel:#channel for a default destination. You can then route individual event types to their own channels. The bot live-tests View Channel, Send Messages and Embed Links before saving each destination.
- 5
Run the guided check
Run /lc admin setup. It privately checks the server link, officer identity, tested notification channel and member identity adoption.
// NOTE
Configure the Discord server
Run /lc admin setup and choose Configure Discord server. Members with Manage Server can inspect every preview, but only Discord's live-verified guild owner can Apply. Ownership and bot permissions are checked again at the mutating interaction.
Choose Check bot health at any time to recheck permissions, role hierarchy, Member/rank/officer mappings, managed structure and notification channel access. Last Command also audits configured integrations every five minutes. Unsafe Officer-role access is removed automatically; structural repairs always return to an owner-confirmed preview and never silently change linked or unrelated content.
For an established server, choose Use current server. Last Command scans the current layout and offers Bot essentials, Recommended, Event coordination, Complete and Custom scales. Commands already work server-wide; the scale controls only which roles and channels setup should add or track.
Every preview separates missing resources to create, exact matches linked without changes, owner-selected matches to adopt and manage, repairs, conflicts and resources that remain untouched. Use Fine-tune channels to include exact resources, and Manage existing matches only for channels Last Command may move and repair. Roles only, Minimal and Full remain available for new servers.
// NOTE
// HEADS UP
Commands
- /lc help — command overview.
- /lc events upcoming — useful upcoming events across the linked alliance.
- /lc events when — find the next occurrence of a searchable event type.
- /lc events request — request a Desert Storm or Canyon Storm place.
- /lc events status — your pending requests and assignments.
- /lc events plan — next Desert/Canyon battle plan (Pro).
- /lc me overview — your assignments and train duties.
- /lc me claim/account/inbox — identity, account and private reminders.
- /lc alliance roster/train — roster and train coordination.
- /lc alliance report/pulse — weekly report and officer action summary.
- /lc content invite/recruit/poll — alliance posts and decisions.
- /lc content scan/feedback — screenshot review and private feedback.
- /lc admin setup/link/status — server installation and readiness.
- /lc admin channel — exact per-event notification channels.
- /lc admin roles/claims/briefing — secure officer administration.
Event types are searchable data rather than separate slash commands. Desert Storm, Canyon Storm, Alliance Exercise, Zombie Siege, Ghost Ops, General's Trial, Alliance Duel, Arms Race, Meteorite Iron War, Server vs Server, season events and custom calendar events all use the same stable /lc events actions. New platform events can be added without expanding the top-level command surface.
Request screens are previews and never write. A button click re-resolves the member's approved Discord identity and re-reads the live occurrence before Storm validates the alliance, member binding and match state. Demotion or departure does not preserve an identity link or grant request authority.
Member identity claims
Registered Last Command members connect Discord from their authenticated profile using Discord OAuth. Their names do not appear in /lc me claim, and the bot's internal claim endpoint cannot attach a Discord identity to their account.
/lc me claim is only for account-less roster placeholders. Choosing a roster name is not proof of identity: a linked R4/R5 must verify an ordinary member independently; establishing another R4/R5 identity requires a linked R5. Claimants can never approve themselves. During initial setup only, before an officer identity is linked, the live-verified Discord guild owner may approve a non-officer placeholder. That fallback cannot approve an R4/R5 identity and closes as soon as an officer is linked.
Pending claims expire after seven days and store only Discord/member identifiers. Shared channel notices contain no claimant or roster name; identity details and approval controls appear only in the ephemeral /lc admin claims review.
Safe role synchronisation
Last Command can keep a verified role and separate R1–R5 display roles aligned with the active alliance roster. These mapped roles are deliberately limited to ordinary channel permissions. They cannot contain moderation or server-management permissions, and that stricter safety check is never relaxed.
You can separately configure one optional officer role for active R4/R5 members, or R5 members only. The officer role may contain View Audit Log, Manage Messages, Manage Threads, Manage Events, Moderate Members, Mute Members, Deafen Members and Move Members, in addition to ordinary non-privileged channel permissions.
// HEADS UP
The officer role must be separate from every verified and rank role, not managed by an integration, and below both the Last Command bot's highest role and the configuring administrator's highest role. Discord only lets the bot add and remove roles beneath its own role in the server hierarchy.
- 1
Configure and review
A linked Last Command R5 or subscription owner who is also the Discord server owner or an Administrator runs /lc admin roles action:configure, selects the officer role and chooses officer_min_rank:R4 or R5. Configuration saves a pending mapping and shows a preview; it does not grant the role.
- 2
Preview safely
Run /lc admin roles action:preview to see additions, removals, unchanged members, unresolved members and any permission or hierarchy blockers. Preview never writes Discord member roles.
- 3
Apply explicitly
Run /lc admin roles action:sync to enable the officer mapping and apply the previewed changes. The same dual Last Command authority and Discord Administrator/server-owner authorization is required.
- 4
Disable and remove access
Run /lc admin roles action:disable to remove Last Command-managed officer assignments and turn synchronisation off. Demotion below the threshold, departure, deactivation or identity unlinking also removes the role automatically.
Last Command rechecks the role's permissions and hierarchy during synchronisation, status checks and a five-minute safety audit. If the role is later made unsafe, the mapping fails closed: Last Command-managed officer assignments are removed, the mapping is disabled, and /lc admin roles action:status and /lc admin setup explain how to recover. Settings → Discord shows the same state as a read-only summary; privileged changes stay inside the Discord command where both identities and permissions can be verified.
Notifications and reminders
Pro alliances can post match creation, signup requests, results and officer announcements automatically. Match reminders mention assigned players and provide one-tap attendance buttons. The fire handler always reads current match and member state before posting, so schedule changes do not produce stale instructions.
Officer-configured calendar reminders use per-event EventBridge schedules at the chosen lead times. Each fire re-reads the event, its enabled state, lead time and active roster; deleted, disabled, changed, empty or non-occurrence fires do nothing. Recipients are batched into one useful alliance post rather than one channel message per member.
The default channel remains the fallback for existing installations. Use /lc admin channel action:set event:... channel:#channel to independently route Announcements, Desert Storm, Canyon Storm, Alliance Exercise, Zombie Siege, Ghost Ops, General's Trial, Alliance Duel, Arms Race, Meteorite Iron War, Server vs Server, season events, custom events, Train/VIP, alliance activity, diplomacy, shields, command tasks or the weekly briefing. Run /lc admin channel action:status to see the routing table, or /lc admin channel action:clear event:... to return one type to the default.
Event-specific routes are optional. An override wins when present; otherwise the default is used. If neither exists, only that event type remains silent. Desert and Canyon command rooms are created beside the notification in their routed match channel.
Members can control personal reminder channels from My hub → Notifications.
Legacy webhook setup
Existing webhook connections continue to work for announcement and event posts, but the bot is the recommended setup because it also supports slash commands, identity links, buttons and targeted mentions. You can switch in Settings → Discord.
If you keep a webhook, create it under Edit channel → Integrations → Webhooks, paste its URL into Last Command settings, save, and send a test post. Treat the webhook URL as a secret: anyone who has it can post to that channel.