What It Does
📣 Event Announcements — Schedule Plague Marauder, Zombie Siege, and any other recurring events. The bot posts a draft to leadership for review at your chosen time each event day, then sends the final announcement to your public channel once approved. A 5-minute warning fires automatically before the event starts.
🚂 Train Schedule — Track who gets the alliance train each day and generate a personalised ChatGPT prompt to help write a blurb for that member. Birthdays can be automatically added to the schedule in advance.
🎂 Birthdays — Read birthday data from your Google Sheet and optionally add members to the train schedule on their birthday, post birthday announcements in Discord, or both.
⚔️ Desert Storm — Generate ready-to-copy team mail drafts for Team A and Team B each week. Configure participation tracking with custom questions and log sit-outs after each event.
🏜️ Canyon Storm — Same as Desert Storm — mail generation, team tracking, and participation logging with the questions you define.
📋 Survey — Let members submit their stats through a private Discord thread. Responses are saved directly to your Google Sheet and leadership gets a notification for each submission. 💎 Premium guilds can configure multiple named surveys.
📈 Growth Tracking — Track your alliance's growth over time by taking periodic snapshots of any stats you choose — squad powers, THP, total kills, or anything else in your sheet. You define the metrics, the source, and the schedule. Each snapshot also classifies every member's percent change into a bucket (Increased / Steady / Low / None / Decline) so you can see who is climbing and who is stalled at a glance.
🌟 Shiny Tasks — Daily auto-post listing every Last War server in your alliance's transfer-eligible window that has shiny tasks today. No more checking by hand and copy-pasting the list into your in-game mail.
📦 Data Portability — Migrating to a new Discord? Backing up before a leadership handover? /export_config dumps your saved bot config to a JSON file, and /import_config walks a guided channel and role remap wizard to apply it to another server. Your alliance's data already lives in your own Google Sheet; this carries the bot-side wizard answers alongside it.
Your Data Stays With You
Alliance Helper is built around a simple principle: your alliance's data lives in your own Google Sheet, on the Google account you control. Power scores, growth snapshots, train history, participation logs, member rosters — all of it is written to your sheet. The bot helps to organize; you own the data.
- You own the data. The bot reads and writes; it doesn't keep its own copy of your alliance's data.
- Use other tools alongside it. Your Sheet is just a Google Sheet. Edit it directly, point another tool at it, or export it — the bot doesn't care.
- Switch leadership without losing anything. Hand the Sheet off when leadership changes. Every record from every storm, train, and survey comes with it.
- Premium adds features, your alliance data lives in your own Google Sheet. Subscribing unlocks DMs, scheduled reminders, and roster sync — nothing about where your data lives changes.
For details of what data is housed where, see Where Your Data Lives on the Privacy page.
Day-to-Day Quick Reference
Already set up? These are the commands leadership reaches for most. For the full list of every slash command and what it does, see the Commands reference.
| Situation | Command |
|---|---|
| Post or repost the survey button | /survey_post |
| Manage the train schedule (add, update, generate prompt, clear) | /train |
| Add upcoming birthdays to the train schedule | /train_addbirthdays |
| See upcoming birthdays | /birthdays |
| Open the event editor | /events |
| Generate a Desert Storm mail draft | /desertstorm_draft |
| Generate a Canyon Storm mail draft | /canyonstorm_draft |
| Log Desert Storm participation | /desertstorm_participation |
| Log Canyon Storm participation | /canyonstorm_participation |
| Look up a past Desert Storm log | /desertstorm_log [date] |
| Look up a past Canyon Storm log | /canyonstorm_log [date] |
| Send or schedule a survey reminder | /survey_remind |
| 💎 DM a participation reminder before each storm | /desertstorm_remind / /canyonstorm_remind |
| Run a growth snapshot manually | /growth |
| View all configured settings | /view_configuration |
| See all commands | /help |
Troubleshooting
Commands aren't showing up in Discord — Slash commands can take up to an hour to appear after the bot first joins your server. If they still aren't showing after that, try removing and re-inviting the bot.
A specific user runs a command and absolutely nothing happens — no response, no error, nothing in the channel — This is almost always Discord's Use Application Commands permission being denied for one of the user's roles. Discord blocks the interaction before it ever reaches the bot, so the bot has no record of it and the user sees nothing back. Edit the channel (or its parent category) → Permissions, then check every role the user has — not just the leadership role. If any role has "Use Application Commands" set to red X (deny), Discord blocks the interaction entirely; deny always wins over allow when a user has multiple roles. The fix is to either remove the deny on whatever role is causing it, or explicitly allow "Use Application Commands" on the leadership role at the channel/category level so it overrides @everyone.
"You don't have permission to use this command" — Most feature commands need to be run in the leadership channel by someone with the leadership role configured during /setup. The various /setup_* commands also accept anyone with server Administrator permission, so a server owner can configure a feature even without holding the leadership role.
"This bot hasn't been set up yet" — Run /setup first. The bot won't respond to feature commands until core setup is complete.
"Permission error" when the bot tries to access your sheet — The bot's service account doesn't have access to your sheet. Go to your sheet's sharing settings and make sure the service account email has been added as an Editor. You can find the email address by running /setup and checking Step 6.
A button stopped working after a bot restart — Discord buttons lose their connection to the bot when it restarts. The bot also automatically strips its buttons after they've gone idle for too long and appends a notice ("⏰ The actions for this have timed out. Use /events (or /train, etc.) to re-initiate.") so you'll see when a draft has gone stale rather than guessing. In either case, use the corresponding command to start a fresh flow:
| Button | Use instead |
|---|---|
| Event editor or approval | /events |
| Train reminder prompt button | /train |
| Desert Storm approval | /desertstorm_draft |
| Canyon Storm approval | /canyonstorm_draft |
| DS/CS log steps | /desertstorm_participation or /canyonstorm_participation |
| Survey button | /survey_post |
A setup wizard is stuck or you want to start over — Run /cancel to abort any active setup wizard, then re-run the relevant /setup_* command.
Something else isn't working — Use /help to see all available commands and make sure the relevant feature has been configured with its /setup_* command. If the bot returns an error message with a Reference: ... code, include that ID when you report the issue — it lets us correlate to the exact failure on our side.
Still stuck or want to report a bug? Open an issue at our issue tracker. That's the best way to get in touch — we read every issue and reply there.