War Helper Bot · Processing Images Guide

Two Ways to Process Images

Same classifier and archive underneath — pick whichever fits how your guild shares screenshots.

Before You Start
Setting Up Auto-Archive Channels

There are two ways to configure where battle results get posted — pick one.

⚙️ Option A: /setupchannels
Automated — recommended for new servers

One slash command that does everything:

  • Creates a War-Helper Channels role (if missing)
  • Creates the categories/channels for hero and titan results (reuses existing ones with matching names — safe to re-run)
  • Locks those categories so only that role can see them
  • Auto-wires all 6 routing types to the new channels

Requires Administrator. Asks for confirmation before making changes. There's a matching /teardownchannels to remove everything it created, if you ever need to reset and re-test.

Discord channel list showing the categories and channels created by /setupchannels: war-data, war-data-archives, hero-war-data, and titan-war-data
The categories/channels /setupchannels creates
🔧 Option B: %setchannel
Manual — for custom setups

Point specific existing channels at specific outcomes yourself:

%setchannel <type> #channel

Channel types:

TypeMeaning
hero_offence_winGuild attacked & won
hero_offence_lossGuild attacked & lost
hero_defence_winGuild defended & won
hero_defence_lossGuild defended & lost
titan_offence_winGuild attacked (titan) — wins & losses
titan_defence_winGuild defended (titan) — wins & losses
archiveCatch-all — anything without a specific channel set falls back here
Example%setchannel hero_offence_win #hero-attack-wins

Run %setchannel with no arguments to see everything currently configured. Requires Manage Channels permission.

How routing actually happens

Once channels are set (either way), submit battles by replying to a screenshot message and mentioning the bot with process/tprocess + offence/defence:

@WarHelperBot process offence Family vs XXX Feb 27
@WarHelperBot tprocess defence XXX vs Family Feb 27
Screenshots Accepted for Processing

Both Manual and Auto processing accept the same battle-report screenshots — this is what to capture.

Example hero battle report screenshot accepted by %process
Hero battle report — used with %process
Example titan battle report screenshot accepted by %tprocess
Titan battle report — used with %tprocess
Manual Image Processing
📎 %process / %tprocess
Prefix commands — attach images directly to the command
  1. Checks your server's subscription is active first
  2. Downloads every image you attached — maximum 10 images per message, a Discord attachment limit
  3. Catches the wrong command — warns and skips if a hero screenshot is sent to %tprocess (or a titan screenshot to %process)
  4. %process only: counts detected heroes and requires a multiple of 5 (up to 30) — posts a debug overlay if that check fails
  1. Runs the classifier on every battle line found in the image
  2. Low-confidence or unrecognised heroes aren't saved to the archive automatically — instead the bot posts permanently to the archive channel with a ❌ reaction and tracks it as an Unsaved Battle. React ♻️ on that message any time to retry classification (e.g. after a retrain) — success swaps the ❌ for a ✅ and saves it; a failed retry just leaves it for another attempt later
  3. Clean results save to the archive and post right there in the channel you ran the command in
WarHelperBot message showing battle lines processed successfully with hero lineups and power levels
Processed successfully — posted in the channel the command was run in
  1. More than one image → a summary embed at the end; your command message is deleted afterward
Auto Image Processing
↩️ @WarHelperBot process / tprocess
Reply to a message with images, mentioning the bot
  1. Reply to someone else's message that has images attached, mentioning the bot: @WarHelperBot process offence (or defence, plus an optional note) — maximum 10 images per message, a Discord attachment limit
  2. Needs at least one archive channel already configured (via /setupchannels)
  3. Posts a "⚙️ Processing" acknowledgment straight away
  4. Same wrong-command and hero-count checks as the prefix version
  5. Same classifier pipeline runs on every battle line
  6. Key difference: results are routed automatically to the correct hero/titan × offence/defence archive channel — not posted in the channel you replied in
  7. Same skip / unrecognised-hero / clean-result handling and saving as the prefix version
  8. Same multi-image summary embed; the message you replied to is left untouched
Which one should you use?

Quick personal processing in any channel — use %process/%tprocess. Building the guild's shared archive from screenshots posted anywhere — reply-and-mention with @WarHelperBot process/tprocess so results land straight in the right archive channel.

Auto-Channel Magic Processing

Tired of manually replying to images just to get results? Register your auto-channels once, and every screenshot posted there gets picked up and processed automatically — no command, no reply, no thinking about it.

1️⃣ Set your channels

Run /auto_channel once, admin-only.

2️⃣ Post a battle screenshot

Right in the registered channel — that's it, pure auto-magic from here.

3️⃣ Get your results

Delivered straight to your output channels — zero effort after setup.

📥 /auto_channel

Lets an admin register up to 4 channels by type:

Requires an active guild subscription and at least one output channel already configured via the legacy %setchannel. Once setup it shows a confirmation prompt, then saves the channel assignments (AutoChannel DB rows).

To remove these settings use:

/auto_channel clear=True

Wipes all auto-channel registrations for the server. Admin-only, hidden from non-admins in the picker.

⚠️ Set up %setchannel first

Auto-channel processing needs somewhere to send its results — /auto_channel only works after your output channels are already configured with %setchannel. Get that sorted first, then run /auto_channel with all 4 channel types. Once both are in place, it just works.

Relaying screenshots through another bot?

If your guild's screenshots get relayed through another bot instead of posted by a human, that bot needs to be allowlisted before its posts will be picked up in auto-channels. Contact BigBoy (bot owner) directly and we'll whitelist it for you.

How detection actually happens

The actual detection/processing logic that watches these channels lives in battle_processing_cog.py (process_battle_images), which checks the AutoChannel and AutoChannelAllowedBot tables whenever a message with an image lands in a registered channel.

Need help?

If anything isn't behaving as expected, reach out in our Discord support server and we'll help you sort it out.