A Discord bot that notifies your channel when a Warcraft III lobby matching your filter goes live.
/alert — a form pops up.tree tag in the File name field. You don't need to fill in every field — one filter is enough.Here's what an alert looks like in Discord:
When you run /alert, a form appears with several fields. The only one that matters for most alerts is File name.
tree tag) or use a regex for more control (like /tree.*tag/i). This single field is all you need for the vast majority of alerts.The other fields below are rarely needed — skip them unless you have a specific reason.
us, eu, or kr.You can test all of these filters against live lobbies on the status page.
Message — optional text included with each notification. Use it to ping a role, e.g. @TreeTagPlayers game is up!. For conditional messages, see message templates.
Type below to search current lobbies. This is exactly what the bot's File name filter does. Plain text and /regex/i both work.
Both work in any filter field. Plain text does a simple "contains" match (ignoring capitalization), which is fine for many cases. Regex (short for "regular expression") is a way to write flexible search patterns — like matching multiple files in one filter, or being precise about word boundaries. About 40% of alerts use regex.
To use regex, wrap your filter in slashes and add i at the end to ignore capitalization:
/your pattern here/i
| Filter | What it matches |
|---|---|
/tree.*tag/i | Any file with "tree" followed by "tag" (with anything in between), like "Tree Tag Reforged 2.5" |
/dota|legion/i | Files containing "dota" or "legion" — the | means "or" |
/reforged.*footmen/i | Files with "reforged" followed later by "footmen" |
/Risk\s+(Europe|Asia).*/i | "Risk" followed by "Europe" or "Asia" — \s+ matches spaces, (A|B) matches either A or B |
/^footmen frenzy/i | Files that start with "Footmen Frenzy" — ^ means "beginning of name" |
/bootybay$/i | Files that end with "Island Defense" — $ means "end of name" |
You only need a few building blocks to write useful patterns:
| Pattern | Meaning |
|---|---|
. | Any single character |
.* | Any number of characters (including none) |
.+ | One or more of any character |
A|B | Match A or B |
(A|B) | Group — match A or B as part of a larger pattern |
\s | A space or tab |
^ | Start of the name |
$ | End of the name |
/i | At the end — ignore upper/lowercase |
Not sure which to use? If you want alerts for one specific map, plain text is fine. If you want alerts for multiple maps or need more precision, use regex.
Advanced
The Message field supports conditional blocks so different lobbies can produce different messages:
{{#if map contains "dota"}}DotA game up!{{#else}}New lobby{{/if}}
Operators: contains (plain text) and matches (regex). Combine with and / or:
{{#if map contains "legion" and server contains "us"}}US Legion game!{{/if}}
Available fields: name, map, host, server, slotsTaken, slotsTotal. Conditionals can be nested.
Type /stop in the channel to remove the alert. No options needed. You can always set up a new alert with /alert at any time.
If the bot isn't sending alerts, the most common cause is missing permissions. The bot needs both of these in the channel:
Check that the bot's role has these permissions in the channel settings. If you've restricted permissions for the channel (e.g. a read-only announcement channel), you may need to add an override for the bot specifically.
If either permission is lost after the alert is created, the alert will be automatically stopped.