Configuration Instructions
Basic Settings
STRATZ_API_TOKEN string
- The plugin relies on Stratz API to fetch data, so this configuration is mandatory for the plugin to function.
- The Stratz API is easy to obtain. Log in to the Stratz website with your Steam account, and you can get a basic version of the API Token on the API page, which allows 10,000 calls per day. This is generally sufficient for basic usage.
Daily API Call Calculation: 1440×(P/5)+(1+W)+R
= minutes in a day × (number of bound and subscribed users ÷ 5) rounded up
+ (one parse request + requests sent for parsing when waiting for reports)
+ command query call count
About stratz API Forbidden 403
See API 403
dataParsingTimeoutMinutes number
- Data parsing timeout (in minutes)
- While player logins during games will automatically trigger parsing, and the plugin sends a parse request when tracking match data, issues like Stratz outages, game version updates not followed by Stratz, and non-standard modes could delay or prevent parsing.
- After the match ends, if the wait time exceeds this configured value, incomplete match reports will be published.
proxyAddress string
- Proxy address. If left blank, no proxy will be used.
Note
The plugin's network request dependency has been switched from the http service to the axios package starting from version 2.2.2. Therefore, the plugin cannot use the global proxy configured by the proxy-agent plugin and only supports the proxy address set via this option.
suppressApiNetworkErrors boolean
Due to the instability of the Stratz server and varying network conditions, a large number of network errors (e.g., timeouts) can occur during data polling. This option is available to suppress these errors and prevent them from flooding your logs.
This option also applies to network request errors from OpenDota.
- When enabled, API network errors will be logged at the
debuglevel instead of theerrorlevel.
How to Display Debug Logs in Koishi
By default, Koishi does not display debug level logs. To view them, you need to add the following configuration to the bottom of your koishi.yml file via the Koishi Web UI (File Explorer > koishi.yml) and then restart Koishi.
logger:
levels:
dota2tracker.stratz-api: 3
dota2tracker.opendota-api: 3
dota2tracker.match-watcher: 3
dota2tracker.parse-polling: 3
dota2tracker.match: 3
dota2tracker.player: 3enableOpenDotaFallback boolean
- When enabled, uses the OpenDota API as a fallback data source for
match trackingandquery-matchfeatures. It requests data from OpenDota in parallel while polling for Stratz data. - The current request strategy is to fetch data once per minute for each match and send a parse request every 5 minutes. A parse request counts as 10 API calls.
- The OpenDota API free tier is limited to 2000 calls per day and is likely rate-limited by IP address as it does not require an API key.
- Based on this, a rare situation may occur: the plugin could be rate-limited even when its own daily call count is low. This is likely because other users on a shared public IP (e.g., VPN, corporate/university network) have consumed the shared quota.
OPENDOTA_API_KEY string
- Your paid subscription API key for OpenDota.
- See https://www.opendota.com/api-keys for details.
- Free users should leave this blank.
OpenDotaIPStack auto|ipv4
- If OpenDota API requests are failing 100% of the time, this option can be switched from the default
autotoipv4to try and resolve the issue. For more specific information, please see OpenDota Request Failed.
Message Settings
useHeroNicknames boolean
- Enabled by default. When disabled, only the official hero names will be used in
push match messages.
urlInMessageType checkbox
- Include links in messages
- Include corresponding Stratz match page links in
dota2tracker.query-match/query-recent-matchcommands andpush match messages. - Include corresponding Stratz player page links in
dota2tracker.query-playercommands. - Include links to the corresponding hero pages on
刀塔百科indota2tracker.query-herocommands.
maxSendItemCount number
- Maximum number of item images to send via
query-itemcommand. Results exceeding this limit will not generate item images.
showItemListAtTooMuchItems boolean
- Whether to send item list image when query results exceed maxSendItemCount limit or when no search parameters are provided.
customItemAlias array
- Define custom alias list for in-game items.
autoRecallTips boolean
- When enabled, automatically recalls tip messages after the command call ends, such as: "Searching for match details, please wait..."
Rank Tracking
rankBroadSwitch boolean
- Enables tracking of bound players’ rank information; changes will result in sending rank change reports to the subscribed groups.
rankBroadStar boolean
- This will disable tracking of star level changes when turned off.
rankBroadLeader boolean
- Enables tracking of the ranking changes of top players.
rankBroadFun boolean
- Whether to enable fun reporting templates, see Template Display for effect.
Summary Settings
Daily/Weekly Reports
dailyReportSwitch / weeklyReportSwitch boolean
- Switches for enabling daily and weekly reports. Currently, both use the same template.
dailyReportHours / weeklyReportHours
- Specify the time for daily/weekly report publication.
dailyReportShowCombi / weeklyReportShowCombi
- Switch for displaying player combinations in daily/weekly reports.
(Friendship ending switch)
Template Settings
template_match
Match template selection ["match_1", "match_2"]
template_player
Player template selection Currently, only one template available
template_hero
Hero template selection Currently, only one template available
playerRankEstimate boolean
When enabled, querying players without ranks will infer their ranks based on recent matches, displayed as a greyed-out icon.
fontPath string
- Directory path for specific font files. Default is
data/fonts/dota2tracker. - The plugin automatically scans this directory for font files and generates selectable options in the
fontsconfiguration below. - Supported font formats:
.ttf,.otf,.woff,.woff2,ttc,sfnt.
fonts
Template font settings. See Template Fonts for details.
fonts.sans dynamic
- Sans-serif fonts, used as the default body text in most templates.
fonts.serif dynamic
- Serif fonts, used as title text in some templates.
fonts.mono dynamic
- Monospace fonts, used for code and numbers in some templates.