Tuesday, December 22, 2015

Changelog for 2015-12-22


  • Added Czech to Nation filter dropdown.
  • Switched to new API method for loading tank data since WG is discontinuing the one previously used. Hopefully no more tank names like Cz05 T34 100 short though.
  • Added workaround for bug in new WG API release.
  • Updated to WN8 expected values v25

Saturday, December 5, 2015

Changelog for 2015-12-05


  • Fixed Battle Loading time zones not encompassing the latest possible battle in the same day. The time zones used now for each server for determining what day a Battle is on are:
    • NA UTC-10:00
    • EU UTC-04:00
    • ASIA UTC+04:00
    These time zones are fixed offsets and are no longer related to the Server Time Zones used where other server specific time zones are used.
  • Fixed the current date for the Battles list using the user's specified time zone rather than the Battle time zone, causing inconsistencies.

Thursday, October 29, 2015

Changelog for 2015-10-29


  • Fixed Internal Server Error when attempting to create a new Match for a Match Type with "One Battle Per a Match" enabled, "Require Replay" disabled, and not selecting a replay to upload to the new Match.
  • Fixed Clan Lookup error when, typically due to filtering, one or more players have only a single tank matching the filters for which there is no expected tank values for WN8 (for newly added tanks).

Friday, October 16, 2015

Changelog for 2015-10-16


  • Fixed Payout calculator forgetting notes set via the Modify link on recalculation.
  • Fixed Internal Server Error when entering values which are too large in some Payout fields (now a helpful error message is shown).

Saturday, September 26, 2015

Changelog for 2015-09-26 (Hotfix)


  • Fixed updated library causing internal server errors in certain cases.

Changelog for 2015-09-26


  • Added section to WoTManager translation guide about Import functionality.
  • Removed ability for clans to manually reload members. Clan member changes are automatically loaded each hour, and whenever a clan member signs into the site, their clan data is automatically updated. There's no need to have this, and it can lead to race conditions (for join/leave events).
  • Added a minimum combination check to Code Types, to prevent a random choices and random length combination that gives a very low number of combinations (because this can cause code creation to fail due to not enough combinations).
  • Added Note of when automatic code creation occurs to the Code Settings tab.
  • Added Delete link on Codes lists.
  • Added slight fade to Code Action links on Attendance and Valid Public Codes pages.
  • When creating a new Match Type, One Battle per Match now defaults to true as this setting produces more logical results, especially when paired with setting (or having it auto-determined via a replay) the Result for a Match.
  • Added better error page for timeouts.
  • Added better error page for Security Violations typically caused by having more than one tab open editing an item.
  • Added better error page for File Not Found (for replay downloading).


  • Added check to hopefully prevent issues with duplicate join events and a single (invalid) leave event because created, seemingly due to short-term mismatches in data returned by different WG API methods.
  • Fixed Twitter widget not loading due to CSP conflicts with changes to the way Twitter loads the widget.
  • View code checking show (details) instead of edit permission for codes listing. Note this was purely an error in the client side display code and had no impact on security.
  • Fixed attempting to use a lowercase Prefix that has already been taken causing an internal server error.
  • Moved Features/Help images to Clan Tools (instead of using Imgur).

Backend Changes

  • Removed unused libraries.
  • Updated various libraries.
  • Increased maximum concurrent request handlers.

Also, Friday morning I finished setting up the second server. However, there was a small but noticeable increase in latency (the actual delay appears to vary based on the size of the data returned). This is the expected result, due to the database connection now being remote which adds network latency, plus the (temporal) cost of encryption for that connection.

As such, given that the current server--once I fixed the backend scheduler clobbering it--appears to be more than capable of supporting the current load, I see no reason to degrade performance just because.

Thursday, September 24, 2015

Performance Issues [Update 2]

Basically, I believe I've located the source of the performance issues and have addressed it, in light of everything not grinding to a halt (or even coming closing according to my monitoring) the past two nights despite having more traffic than Monday and about equal to Sunday.

If you're interested in the details, read on.

There's a backend scheduler that runs tasks (load battles, refresh clan membership, run queued tasks). The scheduler automatically creates threads to do this, which is good because it means these things can run concurrently (not actually, but that doesn't really matter for this).

The way this all ends up interacting, at most the following could be running in theory:

  • 2 Battle Loaders
  • Hourly refresh for all clans.
  • Daily general maintenance tasks (for the ASIA server around primetime for NA).

All of which is, I suspect, alone isn't the issue. However, there's another factor, those queued tasks.

There are basically three possible ways a task might be added to the queue: Manually triggered request to reload clan members, Payout Calculations, and User Stats loading.

That final one I think was the crux of the issue. It's triggered whenever a user signs in if their data hasn't been loaded recently. For players in a participating clan, this isn't triggered unless they joined the clan then signed in between two automatic updates. For players who aren't in a participating clan, this is basically always going to be triggered due to the likely distance between sign-in events.

Prior to Tuesday, there was no (sensible) upper limit for concurrent queue tasks, so if a number of people signed in at the same time and triggered player data refreshes for each of them, then every 5 seconds a new thread would be created to run one of those updates. This often will work fine because the refresh is quite quick, but it still does take some time due to needing to send two requests to the WG API. Add in some server load and they can start backing up.

Worst still, they don't go away when the (web) server is restarted, so they basically start clobbering the (entire) server as soon as the web server is started, and the more they back up, the more they clobber. This eventually leads to a massive amount of thrashing, leading to very high I/O wait times and I/O usage and grinds everything to a halt.

After adding a sensible limit to keep this in check, along with some other limits as detailed over in this blog post, the massive performance issues have completely stopped from what I can tell. Though, I suspect in peak load response times a bit slower as a reduced the number concurrent requests on Sunday in an ineffective stopgap measure.

Barring any unexpected complications, I'll switch to the new server for serving web requests tonight, and along with it will increase concurrent limit.

Tuesday, September 22, 2015

Performance Issues [Update 1]

Update 2

I've changed the way the backend scheduler works to prevent an excessive number of tasks from running at the same time. For the moment it's extremely limited with battle loading having one channel of work (mutex) and everything else sharing another channel of work. Queued operations, specifically Payout Calculation, may take a while to run due to this. However, I'm hopeful I'll be able to relax the restrictions soon as I'm in the process of setting up a second server, but for the time being this will hopefully prevent the server from falling over as has happened in the past two days.

Presently, I'm working on finishing the setup process for the new server. After that's setup and handling requests I'll reassess the performance situation and go from there.


Due to reports of Imgur being compromised (which I used to host the images on the site, for the features/help sections), I've temporarily disabled images. I think I will host them on the Clan Tools server to avoid future issues such as this.

Monday, September 21, 2015

Performance Issues

Update 2

Update 1

First, I want to apologize for the issues the site was having last night. I know how frustrating it is when a service you rely on is slow or completely unuseable, and I'm sorry that's something you had to deal with.

I am looking for what is causing the problem, and more importantly solution(s). However, there doesn't seem to be a clear answer to the former question, which makes the latter a shot in the dark.

The issues, to me, don't make sense given my understanding of performance. There's clearly an bottleneck somewhere, but I can't figure out where.

Last night, the peak 1 minute load was 6.28 which was at one specific point, beyond that load was between 5.5 and 4.0. The server has 6 cores, and to my understanding 1.0 load represents 100% CPU usage for a single core, thus 6.0 is 100% usage for 6 cores.

Thus, outside of one minute, CPU load was below 100% across all cores.

Memory usage never went above 2GB (out of 3), and thus was well within reason as well.

Inspecting the queue, which shouldn't be causing timeouts anymore regardless, didn't show any backed up requests.

The only oddity I found was that sendmail was apparently stuck in a recursion loop, but I wouldn't think the amount of I/O it was causing would have been significant enough to introduce slowdowns. However, I don't have any log information regarding I/O, which I have since addressed.

Of course, none of the above is a solution, so at present I'm working to make a few key changes to reduce load on the server. I hope to have these changes implemented by tonight. Though, again, it really is just an educated guess at this point if this will have any impact.

Wednesday, September 16, 2015

Changelog for 2015-09-16


  • Re-enabled WoTcs.com clan history views since they appear to be working again.
  • Added exception for replay uploads to (hopefully) work around an issue related to Wine.


  • Fixed WoTLabs signature on Player Lookup using incorrect server name, resulting in the signatures displayed being for NA players of equal names.
  • On Player Lookup, fixed no Tier Header being visible in Clan Wars Tanks if a tier section only had close to tanks.

Sunday, September 13, 2015

Changelog for 2015-09-12


  • Added Import feature for WoTManager exported attendance data (Clan Home > Import).


  • Fixed Internal Server Error when trying to view the forum of a clan which doesn't exist in the system.
  • Fixed incorrect warning when creating new Subforums.
  • Fixed Events display. Now, only events directly regarding the clan should be displayed, be those join or leave events for clan members (to or from your clan, not any other clans). Additionally, current member name changes will also be displayed.

Friday, September 11, 2015

Changelog for 2015-09-11

New Code Type Options

There are several new code type options, two of the most interesting ones are designed to address the same request from clans in two different ways.

Make Valid Codes Public [public as in visible to all clan members]

This, as the name suggests, make all valid codes of that Code Type available to be seen by all clan members by visiting a specific page on Clan Tools. You can get to this page from the Attendance page (Clan Home > Attendance > Valid Public Codes) or Code page (Clan Home > Codes > Valid Public Codes).

Available on the Code Settings tab.

Auto Create Forward

This setting on the other hand allows having auto-creation of codes beyond the current day, up to 7 days. This makes it easy to copy a week's worth of codes for listing someplace else.

Available on the Code Settings tab.

The Other New Options

  • Auto-Create Start Time Day Offset and Auto-Create End Time Day Offset - These settings allow the auto-created codes to have start and end dates greater than one day.
  • Auto-Create Loose Duplicate Prevention - This setting reduces what it takes to prevent a code from being auto-created from having to have the exact same code type, for date, and from and to datetimes (down to the nanosecond) to just the same code type and for date. This setting, in general, deals with edge cases, so you probably don't need to worry about it. This is enabled by default for new code types; existing code types have it disabled to match prior behavior.

The above three settings are available on the Advanced Settings tab.

Other Changes

  • Related to the above, the Valid Codes list on the Attendance page now only displays codes that are valid or will be in 12 hours or less, to prevent having 7 days of future codes from showing up.
  • Added notice to Player and Clan Lookups regarding WoTcs.com no longer working, which Clan Tools used for member change history. I am exploring other options, no promises for the moment.
  • For Player and Clan lookup, the localization is now forced to english for all servers.
  • Added Total footer for Clan Tanks Lists and clan Player Stronghold Stats.
  • Improved warning message for Clan Lookup when members have accounts which WG API's doesn't treat as existing.
  • Take advantage of the clan members list on the WG API knowing about players to display all players, even those who other parts of the API don't treat as existing.


  • Fixed an issue where users would be redirected to an invalid page in some cases.
  • Fixed checkboxes on clan members list being displayed pointlessly in some cases.
  • Fixed "X members accounts are locked" warning being duplicated when changing filters.

Wednesday, September 9, 2015

Influx of Clans

As you may already know, WoTManager is sadly shutting down. Further, WoTManager has graciously decided to direct their users to Clan Tools as a replacement.

This has already led to an influx of new and interested clans, which has the potential to cause performance issues.

As such, I just want to be clear that I am monitoring performance, and if there is a degradation in performance, I will address it by increasing the available resources.

Also, if you or your clan are noticing such performance drops, please contact me (https://clantools.us/contact) as the monitoring tools I have only show so much. Thanks.

Tuesday, September 8, 2015

Changelog for 2015-09-09


  • Removed restriction on Away Entry: From field requiring it be set to the current date or later for clan administrators.
  • Removed restriction on deleting Away Entries for clan administrators.


  • Fixed internal server error when attempting to save an away entry just providing an end date.
  • Fixed invalid back handling in requests from external sources.

Monday, September 7, 2015

Changelog for 2015-09-07


  • On a User's profile page (e.g. mine), the user's clan will always be displayed, regardless of if they are a member of a participaing clan. If they aren't, the WG API is used to load clan information.
  • Changed the format of the User's clan details to match what is shown on the User Lookup.
  • Added Features page to give an overview of key Clan Tools features.
  • Added support for clans from ASIA server.
  • Added UTC Offset to Time, Date, and DateTime fields (e.g. Berlin (UTC+02:00) ).
  • Added new guide to help documentation: Transitioning from WoTManager


  • Fixed display issues on the Activity Report Members List.

Friday, September 4, 2015

Changelog 2015-09-04

Negative Industrial Resource Values (is fixed)

Because WG doesn't remember a user's IR data when they leave their clan, and Clan Tools does, a negative value would be reported whenever a player left a clan then rejoined it. Clan Tools now checks the player's join date to detect when this has occured and record the correct delta.

Existing negative IR has also been corrected. If you notice any issues, please contact me: https://clantools.us/contact

Another issue was also fixed, which was Clan Tools for any new member would ignore any IR gained in the first day with the clan.

In Garage (is gone)

To be clear, this has no real impact. The interface is a bit cleaner in a few places (known available, which was often zero, is gone and any display of in garage is gone). Tank Locking data will still work as per usual.

As to why? It was unused. In large part because Wargaming requiring an API token from the individual player to access in garage data, every player in a clan would need to provide an API token to Clan Tools. Possible, but it hadn't happened yet.

I've also optimized the clan refreshing method to require one less API request per a clan and reduce the amount of data transmitted.

Timeout Errors

Intermittent timeout errors was an issue that would spring up every once in a while and didn't make much sense to me when I had looked into it previously. However, I recently had a realization and I believe I've fixed the issue, which appeared to be caused by requests that got stuck waiting due to high server load.

Server Load

On the topic of server load, I've also reduced the maximum number of simulations requests which can be served. This may seem to be a negative, however I suspect that the grinding to a halt of the entire site encountered a few sundays prior was caused by very high server load which pushed memory usage beyond the amount of available RAM and into the swap file (which slowed everything down). My monitoring indicates that most of the instances were rarely used anyway, so I don't expect this to be noticeable the vast majority of the time either way.

Feedback on this is welcome though; do you notice a change during times of high load?

Thursday, August 27, 2015

Changelog for 2015-08-27

Clan Lookup Changes

  • Added Ceasefire Day, Neutrality, and Stronghold Tier information to Stronghold tab.
  • Added industrial resources earned per week and total to Stronghold Player Stats tab.
  • Removed industrial resources gained/lost displayed (WG pulled it from the publicly available information).
  • Fixed win rates on Stronghold Player Stats tab not being colored correctly.

Other Changes

  • Added Primary Group to Activity and Stronghold player lists.


  • Fixed attempting to use an older version payout as a template failing if the payout referenced a deleted Code Type.

Known Issues

  • At times, some Pay Groups are listed more than once in the selection drop downs; this shouldn't cause any issues, it's just annoying.
  • If a player leaves the clan then rejoins at a later time, the Stronghold IR tracker will give them negative IR deltas because WG clears their total IR earned when they leave, but Clan Tools doesn't. This is the next thing on the todo list.

Tuesday, August 18, 2015

Changelog for 2015-08-18


  • Fixed possibility to save a Payout Reward Rule without a Pay Group set in some cases.
  • Fixed attempting to change the Pay Group for a Payout Reward Rule that exists causing an Internal Server Error.
  • Fixed Clan Home > Events not displaying player name changes for clan members.
  • Fixed unexpected errors in payout calculation causing Payouts to be stuck in a state of "calculating".
  • Fixed possible error when attempting to save a payout with duplicate Code or Group reward rules.

Monday, August 17, 2015

[Updated (2)] Payout Issues

Update 2

These issues have now been resolved. See this changelog for details.


Unsurprising there were some issues with my fixes, so the update won't till at least after CW today.

Original Article

Currently, there are some issues related to deleting an existing Pay Group in an existing Payout without deleting the Reward Rules that referenced that payout (potentially causing the entire payout to fail to calculate), or attempting to change an existing Reward Rules' Pay Group (causing saving to result in an Internal Server Error). Existing meaning you had saved the Payout with those settings, then gone back and attempted to edit them.

Additionally, on removing Pay Groups, the Pay Group would still be listed in the Pay Group dropdowns if an attempt to save resulted in a validation error.

I believe I have located the source of these issues and have fixed them; however, I'm too tired to trust myself. I'll review the code when I wake up and, all going well, push an update out before clan wars.

Sorry for the trouble. Thank you for your patience.

Sunday, August 16, 2015

Timeouts/Performance Issues

What I know

There was a significant spike in load and outgoing traffic, and the server ground to a halt. Restarting the server appeared to "fix" the issue. I am unsure as to what triggered this to start with at this time.

I'm also aware that an issue was encountered by a clan with updating a Payout; I'll be looking into that tomorrow at the latest.

Apologies for any inconvenience caused.

Wednesday, August 12, 2015

Changelog for 2015-08-12


  • Fixed error when attempting to view Player Lookup > Graphs > Modes in some cases.
  • Fixed possibility of highlighting getting stuck on Player Lookup > Clan Wars Tanks
  • Fixed Researched jump-to buttons not working when a player had no researched non-star tanks. Now Researched highlights all researched tanks, stared and unstared alike.

Slack Battle Integration Changes/Fixes

  • Fixed battle list slack integration not correctly displaying enemy clans whose names were surrounded by underscores.
  • Stopped fetching CW1.0 battles.
  • Added support for -tz [timezone name or numeric offset] flag to override timezone set on a per-a-request basis.
  • Fixed "R" being displayed without number when there was not yet any round defined for a battle on the CW2.0 map.

What slack integration you (maybe) ask?

How do I use this?

  1. Create a new outgoing slack intrigration from: https://my.slack.com/services/new/outgoing-webhook
  2. For the URL enter:

    adding your clan ID to the end (numbers that show up in the end of the URL when you go to https://na.wargaming.net/clans (you have to be signed in to the Wargaming clan website).

    For example, Otter's would be:

You can also change the part of the URL that says tz=et to any of the following, or a whole number representing the timezone offset:

  • PT
  • MT
  • CT
  • ET
  • UTC

Finally, for clans from other servers, where it says provider=na, change NA to EU, RU, ASIA, or KR respectively.

Also, if you are already using the slack integration and your URL starts with https://clantools.us, please change that to https://sv.clantools.us

Monday, August 10, 2015

Changelog for 2015-08-10 (2)


  • Fixed internal server error when creating/updating a payout without specifying a to or from date.

Changelog for 2015-08-10

End of an Era

Clan Wars 1.0 is effectively no more with the NA server being the last to freeze the 1.0 map.

With this in mind, the following changes have been made:

  • Stopped checking for new CW1.0 battles.
  • CW1.0 battles are marked as such with CW1.
  • CW2.0 battles are no longer marked as such with CW2.
  • Stopped loading Clan Wars Globe/Province/Region data.
  • Disabled Global Map viewer on all servers as no servers have CW1.0 anymore.

CW1.0 settings in Payouts will remain for some time; however, they too will eventually be removed.

Thursday, August 6, 2015

Changelog for 2015-08-06

Code Granting/Revoking Changes

Note: All of these changes only apply to the new method of granting/revoking codes, via the Members list on the Clan Home, Clan Members, or Clan Attendance pages, or via the Grant/Revoke button on the Clan Attendance page.

  • Added restricted grant permission, that only allows granting codes that are currently valid (within the time limit); it can be noted that this permission is pointless if the user can create new codes, or edit existing ones.
  • Fixed requiring both the ability to Grant and Revoke codes for the Grant/Revoke code option to be present.
  • Fixed permissions not correctly inferring; each level of grant now implies the previous levels.
  • Fixed Day being required for Granting/Revoking by Code.
  • Fixed given Day being used regardless of what day the given code was for when Granting by Code, which resulted in odd behavior when the two didn't match.

All groups with Grant or Grant (Advanced) permissions have automatically been granted this new permission.

New Clan Wars Tanks / Close To List

  • Star - Popular Clan Wars Tanks
  • R - Researched Tanks (including "Star" tanks)
  • C - Close to being Researched Tanks (has the preceding tank).

Other Changes to Clan Wars Tanks lists:

  • Added Tier 8 and 6.
  • Added Stats Overview for all tanks of that tier 10 (pub stats).
  • Fixed Closed To behaving oddly or incorrectly in some cases.
  • Updated data for closed to; also data is now pulled from the WG API to remove the issue of it never being updated.

Codes List Changes

Two new filtering options have been added, both set by default, to cut down on clutter.

Has Code?

If the code is listed as N/A (and you don't for whatever reason have N, A, and / as code options), then the given Code doesn't have a 'code' that can be used to refer to that code. Otherwise, the Code has a code. Generally there are two reasons a Code won't have a code:

  • The code's valid to date is older than a week; the system automatically reclaims old codes to avoid running into code exhaustion issues (where the number of possible code combinations which aren't in use by the clan run low).
  • The code was created by the system with express intent of it never being submittable (as in, it didn't need a code that users can enter).

System Created?

The system creates codes for various reasons; granting linked codes, granting codes from replays, etc... Whenever a code is needed by the system and doesn't need to be submittable (as in, doesn't need a code that users can enter), it is created as system created.

Keep in mind, this doesn't refer to codes automatically created daily. Codes that are "system created" can never be entered.

In either of the above cases, generally, you don't care about seeing those codes, so now they are hidden by default.

Tuesday, July 28, 2015

On Allowing "Incomplete" Replays

Since Clan Tools started allowing replays to be uploaded, it has only ever permitted "complete" replays. Typically, a replay will be complete if the player doesn't exit the battle before it ends. Sometimes though, replays don't save correctly which also results in incomplete replays.

The problem with using incomplete replays is they simply don't contain enough data to work, not to mention much of the data that does exist is far from ideal in format.

In short: Unless WG changes the replay format, allowing incomplete replays to be uploaded is highly unlikely.

However, I do have an alternative idea that would be better than nothing. The ability to grant a code to the clan members in an uploaded replay. In this case, the replay wouldn't be saved, but it would still allow for one of the core purposes of replay uploading.

Technical Details

The core problem is Clan Tools uses the unique battle ID (which isn't included in incomplete replays) in the replay to identify individual battles. Identifying the battle the replay is for in any other way, especially with the very small amount of incomplete data from incomplete replays, is going to be an error prone process on which I have no interest in embarking upon.

Other issues with the data include:

  • The only timestamp is a formatted time string in the user's local timezone, with no timezone information present. There's a "probably would work" way around this by requiring the uploader to also be the person who recorded the replay, and requiring them to have their timezone set on Clan Tools.
  • Player list only includes player names, not player IDs. For clan members, these names can easily be translated to player IDs (in most cases). For the other team (which isn't even listed in clan wars due to fog of war) I honestly wouldn't bother as it isn't important.

Saturday, July 18, 2015

Changelog for 2015-07-18

New Reward Rule Filters for Payouts

Clan Wars

  • Battle Round (CW2.0 only)
  • Province Income (CW2.0 only)


  • Pays Mode (new options):
    • Raid Battles - Pays for every based on number of stronghold raid battles.
    • Skirmish Battles
    • Stronghold (Raid & Skirmish) Battles
  • Pays Divisor (formally Pays IR Step) - Divisor for whatever value Pays Mode is set to.
  • Rank by IR Earned, IR Earned, Raid Battles, Skirmish Battles, and Stronghold Battles filters (for minimums and maximums).

Other Changes

  • Added Battle deltas to Stronghold Player Data (data recording started 2015-07-08).
  • Renamed "Industrial Resources" tab to "Player Data" on Clan Stronghold page.
  • Added "pretty" display for the currently displayed span to the Clan Stronghold page.
  • Users' names are now clickable on the Clan Stronghold Player Data list.
  • Added support for Republic of Korea server in public tools.
  • Disabled Fame Lookup for all servers (WG API no longer provides the data used for the fame lookup).
  • Disabled Clan Wars Map viewer for ASIA as they no longer have a CW1.0 map and WG's API doesn't support CW2.0 as of yet.
  • Inline help has been removed from all of the Reward Rules on the Payouts Editor; help is now provided on the CMS Help section.


  • Stopped using "demo" WG API key for RU and ASIA server.
  • Fixed To or From date being ignored on Clan Stronghold page, resulting in loading the link displaying different data then expected.
  • Fixed alignment issues on Replay Details view.

Friday, July 17, 2015

Changelog for 2015-07-17 (2)


  • Added "new" Clan Wars mode to Replay processor. Pre 9.9 Clan Wars and Post 9.9 Clan Wars are apparently different replay types (or it may be, CW2.0 Clan Wars replays are now a new replay type, I am unsure).

Changelog for 2015-07-17


  • Fixed error on Activity Report page when using "Disregard Unattendable Days" when a clan has no activity data.

Wednesday, July 15, 2015

[Updated 2015-07-18] Regarding the RU and ASIA Regions

Update (2015-07-18)

WG was quite quick with replying to my email, and as such the RU and ASIA regions are now using real API keys instead of the "demo" key.

Original Post:

As a result of my inaction in conjunction with an upcoming change to WG API, the public tools on Clan Tools for the RU and ASIA regions may become unusable for a time (Player lookup may still work, the rest will probably be unusable).

In short, WG requires an API key for all requests to their API; for the RU and ASIA regions I have been using the generic "demo" key as it seemed to work the same as an actual key. WG it seems (understandably) wants to curtail this, and is introducing strong rate limits to the demo key (10 requests a minute). For reference, the Clan Lookup sends around 100 requests (1 per a player, plus 3 for various clan info [this is why it takes forever to load]).

WG announced this over a month ago, I however forgot about it and never got around to writing an email to request API keys for RU and ASIA until today.

So that's the situation; apologies for any inconvenience this causes.

Changelog for 2015--07-15


  • Added warning message to client when tank data is missing; this does not need to be reported, an automated error is (and has always been) sent when this is detected. Now though, instead of silently ignoring the tank stats with missing tank data, it displays a message.
  • Updated tank list for 9.9 tank additions.


  • Fixed error in Player and Clan lookup due to missing tank data.

Tuesday, July 14, 2015

Changelog for 2015-07-14


  • Up to 5 replays should now be uploadable at a time.

Friday, July 10, 2015

Changelog for 2015-07-11


  • Disabled all Stronghold Reward Rules Min/Max Mode options except for days; the other two options will be added back in the future (and the Min/Max Mode option will be completely removed) as soon as I get the time. I'm doing this because the current setup wasn't flexible enough; you were forced to chose between one of three limiting measures, when in reality you should be able to limit by all three if you want.


  • Improved Stronghold IR fetcher's error handling to better deal with a specific edge case.

Monday, July 6, 2015

Changelog for 2015-07-06


  • Renamed Stronghold Attack & Defense (and Stronghold Battle) to Stronghold Raid, thus it is now Stronghold Skirmish and Stronghold Raid for the types of Stronghold battles.
  • Added dynamic help to Payouts when the total amount paid is zero.
  • Added how to use an existing payout as a Template to the "Changing over to Pay Groups from Code Type Payouts" guide.
  • Added a "Payout Template" guide.

Sunday, July 5, 2015

Changelog for 2015-07-05 (Hotfix)


  • Fixed issue preventing CW2.0 replays from being uploaded.
  • Made integrations request processor more robust to random failures in the WG API or other related issues.

Changelog for 2015-07-05


CW2 Battle Integration Status

  • Battle Loading - Working
  • Battle Replay Uploading - Working
  • Battle Reward Rules - Working

Saturday, July 4, 2015

Changelog for 2015-07-04


  • Added "Disregard Unattendable Days" option to Activity Report (click the cogs). This setting disregards all days which aren't attendable (days which don't have at least one code entry) when performing calculations for Attendance Percents, Average Inactivity, and Inactive For.

    This option is useful for viewing activity data that has day gaps (for example, perhaps your clan does training three times a week, now you can view training Activity without having to do any mental math to know that 42.85% attendance is actually 100% training attendance (and so forth).
  • Activity Report Inactive For now (more logically) calculates Inactive For to the last day in the Activity Span (or the last Attendanable Day if Disregard Unattendable Days is enabled) rather than the current date. If you prefer the old view, use the "Inactive For" to Now setting (in the cogs menu).


  • Members that joined after the current Activity Span are now indicated correctly, rather than just having negative values that didn't make much sense.
  • Incorrect (case-sensitive) member sorting in User Balances dropdowns.
  • Payout 'Target Share Value not Met' warning now shows correct gold needed to reach target share value.

Regarding Match Types

Earlier today I released an update to the site, one of the changes involved switch from using a Start Time and Duration to a Start Time and End Time for a Match Type setting. This required a conversion from a duration to an End Time (using the Start Time). This conversion when fine (to my knowledge), however there was a side effect due to the way the System was setup, which was all of the Allowed Replay Types settings for all of the Match Types were deleted.

I have restored this data from the daily backup; any changes (to the Allowed Replay Type setting) made during the day will have been lost though.

Sorry for any problems this caused.

Friday, July 3, 2015

Changelog for 2015-07-03


The Default Duration setting for Match Types has been removed. This setting was used to set the default duration of the generated Code (if any). Please use the Default Span setting for the selected Code Type instead to achieve the same result.

New way of Granting/Revoking Codes

The New (and recommended) way of granting codes is via the Member's List, either on the Clan Home page, the Member's page, or the Attendance Management page. Simply select the member(s) you want to grant or revoke a code from, click the Check icon that appeared in the bottom left corner of the page (or Grant or Revoke Code button at the bottom of the list), fill in the fields, and finally click either Grant or Revoke.

Attendance Page Changes

  • Primary Group rather than clan role is now displayed.
  • Check box controls are now present in the same way as the Member's list.
  • Each Major Code Type column is now sortable.
  • Each Major Code Type column now displays the number of members with a code entry of that type for the day.
  • Member's list can now be refreshed without reloading the page.
  • Improved support for having two Majors Code Types with one being Linked to the other (both should correctly show up as being granted, via the link connection).
  • A tip now appears if a clan has no codes set as Major.
  • Valid Codes list can now be refreshed without reloading the page.
  • The validity of each code on the Valid Codes list now dynamically updates (newly created codes are not loaded dynamically though).
  • A tip now appears if a clan has no valid codes to display.
  • Added a link to the Activity Report for the current day being shown.

Other Changes

  • Help text is now displayed on the Codes > New and Matches > New pages if the clan has no displayable Codes/Matches.
  • Obsolete Match Types are no longer shown on the New Match page.
  • Matches and Match Types now use a Start and End for spans, rather than a Start and a Duration. Match Type's durations have been converted automatically.
  • Added One Battle per Match setting to Match Types; enabling this ensures that each (in game) battle will be associated with a distinct Match.
  • Switched New Match and Edit Match pages to tabbed interface.
  • Added Note to the Group editor (accessed via the Member's list Edit Groups button) that the Primary Group listed won't refresh till the page is reloaded.
  • "Lie" to users who enter a code that is invalid because they've already entered it, or a code of the same type (for once per a day Code Types), already by using the same behavior as if the code was valid. The message displayed though is different and indicates both that the code was rejected, and why.
  • Added floating action panel for the Members List when one or more members are selected checked) so you don't need to scroll to the bottom of the page just to trigger the desired action.


  • Fixed errors relating to For Date vs. Replay Date being displayed in user's local time, leading to the possibility that the expected date and actual date would display as the same date.


I looked into automatic For Date detection on Match creation from uploaded replay. Unfortunately it's a catch-22 situation which could be worked around, but it simply isn't worth the investment in time currently.

I've also been gathering data for battles loading for CW2.0, it's looking promising and I'm going to start coding that now.

Thursday, July 2, 2015

Changelog for 2015-07-02


  • Fixed typo causing Balances to not be displayed; added checks to prevent this from occurring again.

Wednesday, July 1, 2015

Changelog for 2015-07-01


  • Fixed error on Fame Lookup page if Clan has no icon set.

CW 2.0 and Battle Loading

Firstly, battle loading for CW 2.0 is most likely a few days out, at minimum. However, you can still upload replays for battles using the Matches system. See this guide for information on setting up a new Match Type.

As to what can be loaded, indications are promising that all existing functionality should be transferable (it actually looks like it might even be far easier), but I'll need to gather more data before I can be sure.

Sunday, June 28, 2015

Changelog for 2015-06-29


  • Fixed issues with Multiselect Search field.
  • Fixed Internal Server Error when attempting to use Payout of pervious version in certain conditions.
  • Grant/Revoke Multiselect dropdown not sorting correctly.

Changelog for 2015-06-28


  • Codes are now correctly disregard letter case.

Saturday, June 27, 2015

Changelog for 2015-06-27

First, once again, apologies for the delay with the update.

Also, as announced previously, due to the changes to the Payout system, any uncompleted Payouts created before this update will no longer be editable or completable. As always, existing Payouts can still be viewed, so completed Payouts are unaffected by this change.

On to the changes.

Unlinking Code Types and Payouts

Up to now, Code Types were at the core of determining Pay for Payouts. If you wanted to do something simple, like creating a group bonus for Field Commanders, you would need to create a new Code Type that would never be entered, and really served no purpose sans adding another value to the Code Type Payout.

This terrible system is gone.

Code Type Payouts have been replaced with Pay Groups and the associated Pay Rules. For Codes, Clan Battle, Match, Group Bonuses, and (the newly added) Stronghold Reward Rules, instead of selecting a Code Type which linked the Reward Rule to zero or more Code Type Payouts, you now select a Pay Group which links the Reward Rule to a Pay Group and zero or more Pay Rules.

What this means is that instead of needing to create a new Code Type just to be able to have another set of Code Type Payouts now you just create another Pay Group right from the Payout creator/editor where it doesn't clutter up unrelated parts of the site.

Switching Over

Migrating your old payout settings to this new system is easy; create a new payout using an existing payout (that has your preferred settings) as a template. The system will automatically convert the existing settings to the new format.

If you don't have an existing payout with the settings you want, you can click "Load Settings from Code Types [Not Recommended]" near the bottom of the New Payout page. This functionality will be removed in the future, so do not rely on it as a long term solution.

Removed Settings

Being that a key part of this change is detaching Code Types from being linked to the other reward rules (for Clan Battles, Matches, and Group bonuses), those tabs along with the Code Type Payouts tab have been removed from the Creator and Editor for Code Types. For the time being, if you really want to view (or modify) the existing Code Types you can click "Display Outdated Settings [Not Recommended]" near the bottom of the Edit Code Type page. This functionality will be removed in the future, so do not rely on it as a long term solution.

Additionally, the "Default Payout Loads Code Type Variables" setting in Clan Settings was removed, as has the choice for this option when selecting 'Use as template' for a payout.

Stronghold Industrial Resources Tracking with Payout Support

Thanks to Gyarados, I stumbled upon what I needed to load per-a-player industrial resources [IR] earning totals.

Clan Tools loads the total earnings per-a-member each day and calculates the change since the previous record; thus the system tracks the daily delta of IR per-a-member. Recording started on 06/22.

This solution is much more flexible than relying on WG's past week value when calculating Payouts because it allows each clan to determine when they do payouts (you don't have to rush to calculate a payout before the window for what counts as the past week changes) and how many days any given payout covers.

You can view the data Clan Tools has recorded via Clan Home > Stronghold, and you can configure pay based on Stronghold IR earnings via the Stronghold tab in the Payout Creator/Editor.

As an aside, I'm aware that there's now also Influence that's earned in Strongholds for CW 2.0, however that doesn't seem to be available for viewing anywhere, let alone some place I pull it.

User to User Debit/Credit

User to User Balances (debit/credit) have been added; administrators can add a balance for any two users (or between the clan and a user) either through Clan Home > Balances or a User's Profile > Balances (both go to the same place).

Additionally, Clan to User balances are also handled through Balances, rather than the Debit field used before. Note that Clan to User balances work the same as before, and users always pay the clan back before any users. The moving of members' balances with the clan is purely to allow for a unified interface.

Any existing (so, non-zero) player balances with the clan have been automatically converted to this new system.

Other Payout Changes

Member's balances with the clan are no longer a separate type of "pay" and instead are under (static) Gold, thus removing a column that was generally full of zeros.

As a result, User Credit to the clan in the Cost Breakdown is now just part of Static Gold Costs; User Debit to clan is still listed separately simply because it could lead to confusing data otherwise (negative value for static gold cost).

Other Changes

  • All settings are now available when creating a new code type, rather than some being unavailable only when editing an existing Cod Type.
  • Major setting for Code Types is now on the General tab, rather than hidden in advanced settings, because it is a very useful and powerful setting that I don't think was being highlighted nearly as much as it should be.
  • Renamed Deprecated to Obsolete as Deprecated is not a commonly used word and was causing confusion.
  • Added list of clan members who are a member through their Clan Role when viewing an individual group.
  • Added "More" menu item, with Blog, Help, and Contact items.
  • Added missing links for some Menu Items in Clan Management Help Overview.
  • Added "smart" help prompts on the Matches and Codes listing pages which prompt users to create a Match Type or Code Type (respectively) if none exist for the clan.
  • Switched Match Type Creator/Editor over to tabbed interface.


  • Fixed Indebted users count not always being accurate.
  • Fixed Primary Group not showing actual primary group if it was "manually assigned" (rather than by rank) under specific conditions.
  • Grammatical errors in CMS Help
  • Misalignment in Matches list between Matches with Replays columns and Matches Without Replays columns.
  • Notes icon for Matches not appearing when a Match had a note.

As always, if you run into any issues (or have any questions), please contact me.

Thursday, June 25, 2015

[Updated] Important Notice about Upcoming Update

[Update] During some final testing I noticed an odd issue. I'm far too tired to effectively track down its cause; I'll work on this in the morning and hopefully have this update out long before clan wars starts.

Sorry for the delay.

Original Post:

Excluding any unexpected issues, I will be releasing a major update for Clan Tools on 6/26/2015 at around 23:00 to 24:00 Pacific Time. One necessary result of this update is that any existing and uncompleted payouts will not longer be editable, calculable, or completable. As always, existing payouts will still be viewable in whatever state they are currently in, and as such any completed payouts are unaffected by this.

Sunday, June 21, 2015

Changelog for 2015-06-21


  • Added the ability to select multiple Tiers, Types, and Nations for Player and Clan Lookups.
  • Various improvements to multiselect controls.

Saturday, June 20, 2015

Changelog for 2015-06-20


  • Stopped daily fame rank tracking for ASIA.
  • Removed "Updated" text from Fame Lookup menu item text.


  • Fixed issue with negative deltas (due to WG penalties after the last day I believe) causing the pie chart to not work (negative deltas are now effectively ignored).

Tuesday, June 16, 2015

Changlog for 2015-06-16 (2)


  • Internal server error on loading https://clantools.us/servers/fame due to invalid routing.

Monday, June 15, 2015

Changelog for 2015-06-16


  • Redirect all /clanwars URLS to /servers URLs as it seems Google's indexer is using /clanwars instead of /server, which explains a lot sadly.

Changelog for 2015-06-15


  • Added redirects for /fame/history and /fame/results since those pages are no longer used (in favor of tabs on the main /fame page); I'm not even sure where people are coming across links to these pages as I believe I had removed the only link.

Sunday, June 14, 2015

Changlog for 2015-06-14 (2)


  • Missing data mapping for Winterberg preventing battle loading for that map.

Changelog for 2015-06-14


  • Added Stats tab to Fame Lookup.


  • Fixed typo in RU event config causing Clan Ranks 145-314 to report having 1 license rather than 15.

Changelog for 2015-06-13


  • Fixed issue in Payout Error Detection that would cause a false positive in error check 1c in certain conditions.

Friday, June 12, 2015

Changelog for 2015-06-11

Fame Lookup Changes

  • If the user is signed in and searches for their clan, their player information will also automatically be displayed as if they had searched for themselves rather than their clan.
  • Added Reward Tank info box; displays the rank and points cutoffs.
  • Added Players and Clans Fame Rankings Lists, essentially equivalent to those available on the World of Tanks website. Provided for convenience.
  • In-Clan Rank now correctly displays N/A if the player has no fame points.
  • Removed Clan Role to save space.
  • Reduced maximum width of clan info box to save space.

Wednesday, June 10, 2015

Changelog for 2015-06-10

Fame Lookup (formerly Fame Rankings)

I've updated the fame lookup page to add some general improvements, reflect the rules of the current event, and the addition of fame to WG's API. Go check it out: NA, EU, RU, ASIA.

Sunday, June 7, 2015

Changelog for 2015-06-07

Payout Setting: Use Remainder as Reserve

Certain payout settings, such as using the Target Share Value, may result in the amount of gold remaining in the treasury exceeding the reserve by a large margin. This can be problematic when using Advanced Reserve Calculation options which take into account the previous payout's reserve.

This setting, as the name suggests, sets the gold remaining in the treasury (less any Deferred User Credit) as the reserve after the payout has been calculated.

It should be noted this means this setting has no impact on the current payout, rather it comes into play in some cases when the payout is being referenced by another payout for reserve calculations.

Additionally, note that Deferred User Credit is excluded because it's considered gold that already belongs to a player that the clan is holding, and thus is not part of the clan's "reserve".

Finally, while this is changing the reserve, it isn't changing the field you set (the one labeled Reserve on the Payout Editor's General tab). Which is to say, repeatedly recalculating a Payout with Use Remainder as Reserve enabled will not cause the reserve to grow with each calculation even if the calculated reserve is less than the remaining gold in the treasury.


  • Fixed issue with Auto-polling limit not resetting on successful polling attempt for Payouts.
  • Clarified help text for "Apply Day Multiplier Rules to Additional Shares and Additional Gold" setting.

Wednesday, June 3, 2015

Changelog for 2015-06-03

Clan "Notes on User"

Anyone with "Members > Edit a member's settings" permissions can now edit a notes field for that member. The notes for a member is visible in the Members list (hover over the "tag" icon), in addition to on their profile page.


  • Fixed issue editing clan's settings if the clan has a payout which has a calculation error.

Wednesday, May 27, 2015

Changelog for 2015-05-27


  • Updated replay parser to support 9.8.
    • Domination mode is currently not supported (whenever they enable it), dealing with multiple tanks per a player requires reworking various areas, and given what replays are used for in Clan Tools I'm hesitant to go through the effort (as I suspect it won't be used).
    • Replays from before 9.8 are no longer supported.

Sunday, May 24, 2015

Changelog for 2015-05-24


  • Added Contact link in footer.
  • Added More... link to Clan Home dropdown.
  • Added help text for Code Type > Prefix field.
  • Clarified "cannot be changed" text for new Code Types is specifically referring to the Once Per a Day setting.
  • Various tweaks to help text for Code Type settings.
  • Reduced opacity of some controls.


  • Fixed issue related to uploading replays where a player died to a combat reserve (strongholds).

Sunday, May 17, 2015

The Battle Loader and the Frequency of Updates

The Battle Loader

Clan Tools has a number of tasks that run on an "out of band" scheduler; the most outwardly noticeable of these tasks is battle loading and payout calculations.

This scheduler stops working from time to time, seemingly at random. I had thought it was a memory issue and thus thought it was most likely to fail during the daily maintenance tasks which tend to eat up a lot of memory, so I based my (manual) monitoring around that assumption. Yesterday has shown my existing approach is insufficient.

I have created a semi-automated way to monitor the scheduler, and to detect when it failed. This should, at the very least, decrease the downtime when it does fail in addition to giving me a better picture of what is failing.

The Frequency of Updates

About two weeks ago I started a MSCS program which--in contrast to the past few months before where I effectively had nothing I needed to do, or even the a BSCS program I was in--has left me with a lot less time to spend working on Clan Tools. This is especially true of long chunks of time which are ideal when working on the more complex features.

To be clear, I have no intention of stopping my work on maintaining and improving Clan Tools. I'm writing this simply to let everyone know what my situation is and why updates have been, and will continue to be, slower to come out relative to the changes they bring.

Changelog for 2015-05-17

Tank Name Filter for Player and Clan Lookups

The filter is primarily a (case insensitive) exact match "contains" search, though missing spaces and dashes (-) will still result in a match (e.g. e100 will match E 100 despite the lack of a space in the search).

Detailed Per-Tank Stats for Player Lookup

Detailed Tank Stats for individual tanks (example) can now be viewed via new "Details" link (in the tank list). Note that the "maximum" data isn't available (via the API) for some game modes.

Other Changes

  • Improved detection of opponent for province (non-landing) tournaments (when loading clan battles).
  • Added Ranked Team battles stats to Player and Clan Lookups.
  • Player's links on Clan Lookup page's Member's tab now include any filters currently selected (so, for example, if on the Clan Lookup page the nation is set to USA, clicking on a Member's name will bring up their data on the Player Lookup with the nation set to USA).
  • Added "Player's Statistics" link on Clan Member's list.
  • Renamed "Damaged Caused/Received" to "Damage Ratio".
  • Swapped order of Kill/Death Ratio and Damage Ratio.


  • Fixed Player's tanks list on Player Lookup not having a default sorting order.
  • Fixed some filters for Player and Clan Lookup losing focus after making a selection.

Tuesday, May 12, 2015

Changelog for 2015-05-12


  • For battle loading, fixed the possibility that the last battle wouldn't be detected, causing failures to detect the difference between an encounter on province battle and the battle with the land owner (attacks).

Additionally, if any of your battles from last night (2015-05-11) loaded encounter on province battles at attacks, I can manually fix them if you let me know which ones need to be corrected.

Monday, May 11, 2015

Clan Wars Changes

WG released an update to clan wars, at least on the NA server. This change included a change to the formatting of some of the data Clan Tools uses to load clan wars battles to the current level of detail.

I believe I've made the necessary changes to deal with the new format. However, all of my testing is currently limited to assumptions as no battles have had their times fixed (which battle loading relies heavily on). Additionally, I suspect that past four participants (3 attackers + one defender) the approach being used might break down, but again without actual data to test with I can only make assumptions.

Additionally, even if the additional data cannot be loaded, the system will now still load the battle, though the level of detail in the information presented may be lower. Specifically, the opposing clan won't be known, and there will be no distinction between an attack and an encounter on a province (when two or more clans chip the same province) (any non-defense battle for province will be considered an attack).

Regardless, I will monitor the situation and attempt fix any issues that arise as quickly as possible.

Thursday, May 7, 2015

Changelog for 2015-05-07


  • Added User's Group list to users page, visible to clan members with the ability to view groups.
  • Added Pay History which displays all pay entries for a user after May 23, 2014; only the user can view their pay history.
  • Increased Groups pagination to 30 groups per a page.


  • Fixed issue where trying to edit a forum post to be blank under certain conditions.
  • Fixed modifier display on Groups list not using formatted name.

Tuesday, May 5, 2015

Changelog for 2015-05-05


  • Fixed issue relating to locked accounts and stronghold player stats.

Saturday, May 2, 2015

Changelog for 2015-05-02


  • Added Stronghold and Stronghold Player Stats to Clan Lookup.
  • Added Kill Death and Damage ratios to Player Lookup General Stats.
  • Added Last Battle to Clan Lookup Members list.
  • The player's name on the Clan Lookup Members list now links to the Player Lookup for them.
  • Added Statistics link to player's "profile page" directing to the Player Lookup for them.
  • Added Statistics link to clan's home page directing to the Clan Lookup for them.


  • Fixed last battle on activity report saying "1 days ago" (instead of "1 day ago").

Friday, May 1, 2015

Changelog for 2015-05-01


  • Fixed spelling error in success message when saving changes to clan.
  • Fixed internal server error when trying to save a Forum with two permissions set to the same group (now an error message is displayed).
  • Fixed issue loading tank information which prevented new tank entries from being added.
  • Players with zero battles in a tank are no longer hidden from the counts.
  • Available Maximum now uses the count from the API, rather than the count from Clan Tools' internal records, and is thus more accurate (the internal count is updated once a day).
  • Renamed Available Maximum to Maximum Available to match other two availability fields.

Thursday, April 30, 2015

Changelog for 2015-04-30


  • Added Donate menu item.
  • Changed "Support Clan Tools" text to "Donations" as the former devalued all of the other ways people support Clan Tools. Everyone who provides suggestions, reports bugs, spreads the word, or simply uses Clan Tools supports the site in their own way. Thank you!
  • Switched to meta.count field for WG API interactions.
  • Added client WG API keys for NA and EU regions, though I do not expect this to have any impact.
  • Added meta tags for SEO to Clan and Player lookup pages.
  • Changed the wording of the "Clan Leadership?" message on the home page.
  • Changed the wording of the "Alpha" page, though I suspect I should stop calling Clan Tools an alpha altogether because of the negative connotations associated with the word.
  • Removed "Attendance Home" link from Code Types index page.
  • Enabled the ability for users from the RU and ASIA regions to sign in.


  • Fixed collapsed menu not expanding.

Sunday, April 26, 2015

Changelog for 2015-04-26

Results for Matches

Matches now support having a Result (win, loss, draw) in a similar manner to Clan Wars battles, though due to the generic nature of Matches, the success rate for automated result determinations by the system is lower, especially for draws. Furthermore, the entire concept of the Clan winning or losing doesn't make sense all of the time for many replay types.

Specifically, Clan Tools will try to determine the result for the match for Company, Stronghold (Skirmish & Attack/Defense), Tournament, Clan Wars, and Team (Ranked & Unranked) replay types. Of these, Company, Stronghold Skirmishes, and Team (Ranked & Unranked) battles are assigned "absolute draw" automatically in the case of draws, otherwise "Indeterminate" is assigned. Even in the case of one team outright winning, if there are members of the clan on both sides the result will also be "Indeterminate".

As with Clan Battles Result, the result for any Match can be edited manually via the Actions drop down.

With this addition it's very important to understand how the matches system works; specifically, a single Match (which has a single "result") can have several replays from several different battles associated with it. This is by design, as it allows "grouping" of replays which is desirable in some cases. However, the result is a per-a-match, not per-a-replay, so caution must be used that new matches are being used to upload replays from separate battles, if that is desired.

New Replay Rule Filters

Several new filters have been added for replay reward rules:

Users Source

Previously, replay reward rules always used the replay player list when looking for members who met the requirements for the replay reward rule. Now the code linked to the clan battle (or match for matches) can be used instead. What this means is you can give rewards to players outside of a battle (say the reserve players) based on the same factors as could be applied to those who participated in the battle.

Please note that, while the linked code is used to load a list of players, a replay must still be uploaded to the match or battle in question for it to be checked.

Landing Zone Tournament Battle Type (for Clan Battle Reward Rules)

A new, special, battle type has been added: LZ Tournament. This battle type is special because it doesn't refer to a specific battle type, but rather to the collection of battles that make up landing zone tournaments. To put it simply, it groups landing zone tournaments (by province and day) into what is effectively a single battle, with a single result, and a single "team" consisting of every player who played in any of the battles in the landing zone. (Note that this simply explication glazes over some of the fine details, see this Guide for a more accurate and detailed look at how this battle type behaves).

As to use cases, this has been added primarily to allow assigning rewards based on the overall result of a landing zone, rather than any particular battle in that landing zone.

Result (for Match Reward Rules)

Added in conjunction with the addition of results for matches. Allows filtering by the result for Match Reward Rules the same as Clan Battle Reward Rules.

Group by Match (for Match Reward Rules)

This setting, effectively, makes Match Reward Rules behave as someone might logically expect. Before now, Match Reward Rules always ignored any groupings of replays from separate battles into single Matches. Or, to put it another way, before you could add replays from several different battles to the same match, and that would correctly assign the same Code (if any) to all of the players across those battles, but the Match Reward Rules would completely disregard this grouping.

Enabling (checking) this setting makes Clan Tools honor those groupings and give any given player a maximum of one result from any one Match regardless of the number of different battles linked to a Match.

All existing Match Reward Rules have this set to disabled; all new Match Reward Rules will have this default to enabled.

Other Changes

  • Improved robustness of replay tank to API tank matching.
  • Added "Auto Determine Match Result" setting to Match Types (under Replay Settings). Defaults to enabled.
  • Removed "Add Replay to Match" link from Match dropdown; it does the exact same thing as the "Add Replay" link and just clutters up the drop down even more.
  • Added supported for Ranked Team Battles replay type.


  • Fixed Match Type Date check using user's selected time zone rather than regional time zone.
  • Fixed Grant page switching to Revoke page if the grant action couldn't be completed due to the entered Code being invalid.
  • Fixed JS error if Clan Battle Reward Rule result filter was set to "N/A".
  • Fixed Match Search not showing dates for replays.

Landing Zone Tournament Battle Type Guide

The LZ Tournament battle type effectively divides the rest of the filters for the Clan Battle Reward Rule into two groups, one which applies only to the last battle for the LZ Tournament that your clan participated in (so, if your clan played in the 1/8, 1/4/ and semi-finals, losing in the semi-finals, then the semi-finals would be the last battle for that particular tournament for your clan), and one for each battle within that tournament (or rather each player).

First, for the last battle in each tournament, the system checks that the result (win/loss/draw/etc...), arena (map), and province type match. If they do, all battles in that tournament are checked for the next filtering, otherwise all battles in that tournament are excluded.

Then, for the tournaments that made it through the first filtering, for each player the side they were on, the battle role, group, and uploaded replay filters are checked. If a player meets all of these criteria for even one battle within a LZ tournament, then they are considered to have met the criteria for the entire LZ tournament, and thus are said to have met the criteria for the Reward Rule once.

Notably, because often there will be several battles in the same LZ tournament, a player could meet the criteria for several battles within a LZ tournament. Duplicates are not allowed, so in such cases, the last matching battle within the LZ tournament (so, the last battle that player played in that matched) would be selected, and all others would be discarded.

This unique combination can lead to what may seem to be counter-intuitive results at times, specifically when reviewing the Replay Reward Rules in a Payout users will be displayed within the last matching battle, which may actually have a different result from what the Clan Battle Reward Rule specifies (because, recall that the system only checks the result on the last battle participated within each LZ tournament).

Hopefully you now have a better understanding of how the LZ Tournament Battle Type works.

Wednesday, April 22, 2015

Changelog for 2015-04-22 (2)


  • New French tanks from 9.7 have been loaded from the API. No tanks appear to be missing, though the english localization doesn't appear to be finished.

Changelog for 2015-04-22


  • Fixed issue where upon trying to delete a Code Type pre-checks did not look for links to Clan Battles or Matches, just code entries, causing issues if a code type wasn't set to automatically grant for those activities.
  • Fixed Private Notes still being displayed on clan applications, if present.

Tuesday, April 21, 2015

Changelog for 2015-04-21


  • Fixed possibility of usernames and primary group name values overflowing onto other areas on Forums
  • Fixed Edit link for Clan Applications saying "Edit Status & Private Notes" as private notes are no longer used.
  • Added missing EU tank locking tables (same as NA).

Monday, April 20, 2015

Changelog for 2015-04-20

Clan Forums & Discussions

Private Clan Forums and Discussions (currently for Clan Applications and Payouts) have been added. Clan Forums are a customizable forum for each clan with support for subforums (everything is a "subforum" technically), per-a-forum permissions, and a few other features. You can access the clan forums from the new Forums link on the Clan Home side navigation bar, though they are "Some Assembly Required" in terms of creating subforums to suit the needs of your clan (basic forums guide available here).

Discussions are an extension of Clan Forums which embed automatically generated and linked forum threads onto the pages they related to, making it easy to have discussions. Clan Applications have two discussion threads, one in which the applicant can also participate, and one which is clan only; Payouts have a single discussion thread.

"All Members" Group

I've added an "All Members" group to all clans; this group applies to all members in the clan and thus is useful for granting permissions to everyone in the clan.

Permissions Granted

Along with the Forums came a new set of permissions; the "All Members" group has been used to give all members basic forum access, though it doesn't really give them access to anything due to each "subforum" having its own permissions. Additionally, the existing "Admin" and "Commander" groups (if present) were granted Forum Admin if they already had the "Groups > Edit" permission (which they should).

Content Security Policy

Short version: It's enabled now on every page, sans those under "Tools" and, if you're not the member of a participating clan (or not signed in), on the main page. If you want it enabled on every page, there's an option available in your settings.

Long version: I talked about enabling Content Security Policy (CSP) in a previous post. That was a month ago and I did run into a somewhat "significant problem"; user's browsers, mine included.

More precisely it's the mix of browsers and add-ons; it's my understanding, technically speaking, browsers should exclude any user add-ons (and thus anything those add-ons do or add to the page) from the current website's CSP. That doesn't happen so CPS logging gets filled with entries that aren't caused by a problem with the site itself. Even with filtering it's unmanageable. Add to this the fact a single page load can fire off several CPS logs (which isn't good for server performance at peaking times), and I was forced to rethink my approach.

Thus the current solution. I'm reasonable sure the site functions correctly with CSP enabled, so CSP is now enabled (without logging) on almost every page. CSP is specifically turned off for the "Tools" pages because I consider the likelihood of someone reporting an error, caused by CSP or otherwise, much lower for those pages. I would much rather keep logging enabled (because, even with all of the random crap, if something on the site breaks it would most likely be very noticeable), but the overhead is currently too high.

Other Changes

  • Switched Clan Applications to a tabbed navigation approach (instead of expanders).
  • Changed how Clan Application questions are displayed; the former approach sacrificed far too much readability in an attempt to save space in far too many cases, at least from my personal observations. As always, feedback is welcome.
  • Added "All Members" options for Clan Role Setting mappings.
  • Removed Payout "Note" and Clan Application "Private Notes" fields (use Discussions; existing notes were moved to posts in the relevant discussions).
  • Fully enabled support for EU clans.


  • Fixed answers to questions for Clan Applications being escaped before being saved. Note any existing values will still display incorrectly, this fix only applies for new entries.

Clan Forums & Discussions Guide

Table of Contents

  1. Quick Start
  2. Forums Overview
  3. Discussions Overview
  4. Audits
  5. Deletion
  6. FAQ

Quick Start

  1. Go to the Clan Forums (Clan Home > Forums) with an account with Forum Admin permissions (Admin and Commander groups should have this by default).
  2. Click on "New Subforum", fill out the relevant information, making sure to setup permissions (via the Add Permission link on the editor), then click Save.
  3. Repeat step 2 until you have all of the subforums you want.
  4. (Optional) Click on Edit Layout and customize the layout of the Clan Forums.

Forums Overview

Clan Forums are rather simple; there are (sub)forums, threads, and posts. Forums are the "folders" of the Clan Forums, each one can hold any number of other forums and any number of threads. Forums are also where permissions are (primarily) assigned; for each forum you can set the following permissions per each group:

  • View - Allows viewing of the forum and all threads within.
  • Reply To - Allows replying to existing threads in the forum.
  • Create - Allows creating new threads in the forum.
  • (Moderate) Threads - Allows editing thread settings (stickied, locked, hidden, and which forum it's located) in addition to being able to view hidden threads.
  • (Moderate) Posts - Allows editing posts by any user and setting the edit permissions on posts.

Threads, as noted above, have a few settings which function as follows:

  • Stickied - Threads are displayed above non-stickied threads.
  • Locked - Threads cannot be posted in by anyone who doesn't have permissions to unlock the thread.
  • Hidden - Threads are not visible to anyone who doesn't have permissions to unhide the thread.
  • Parent Forum - Sets which forum the thread is located in.

Posts have one setting of interest, "editing restrictions". Editing restrictions allow moderators (and forum administrators) to limit who can edit a post. It's designed for preventing a user from reverting their post after a moderator makes a change, though I'm sure there's other uses.

Discussions Overview

Discussions are an extension of the forums and are really just automatically created threads which are linked to the thing being discussed. This makes them very powerful because it means they act just like any other thread.

Though discussions also can, and by default do, have a special set of permissions assigned to allow anyone who can view the thing being discussed to automatically be able to view/reply to the discussion. Essentially, out of the box, discussions "just work" but they can still be customized, or outright disabled, if desired.


Audits, or change history, is available for every post, thread, and forum. For posts clicking the Posted/Last updated text will pull up the audit records. Threads' audits can be accessed from the similarly labeled text near the bottom of the page the thread is displayed on. Forums' audits can be accessed via the This Forum dropdown.


Forum admins have the ability to delete threads and forums, though using the existing tools to move, hide, or edit content is recommended as deletions cannot be undone.


My clan already has a forum, why should we switch?

That really depends on what features your current forum software has, and what features you want; if you are perfectly happy with the forums software your clan is currently using, Clan Tools' Clan Forums doesn't have much, if anything, to offer. Much like Clan Tools as a whole, the question is what is the best tool for your clan and its' particular needs.

As always, I'm happy to answer any questions, either via the forums, in-game, or over TS.

Can clans share parts of their forums with other clans or the general public?

At present, no. This is certainly something I recognize will stop a large portion of clans from being able to use the Clan Forums and it is something I'm planning to add in the future, but it's a complicated issue and I don't have an ETA.

Tuesday, April 14, 2015

Changelog for 2015-04-15


  • Fixed users not being displayed on the clan's member list under certain conditions.

Wednesday, April 8, 2015

Changelog for 2015-04-09


  • Fixed issue with Replay Details view not displaying Replay Download Links next to players who had their replay for the battle uploaded.

Friday, April 3, 2015

Changelog for 2015-04-03


  • Fixed "WG API Error: Value given for fields is not valid" error on Clan Wars map details page.

Wednesday, April 1, 2015

Changelog for 2015-04-01


  • Added Stronghold Skirmish and Stronghold Battle (Attacks and Defenses) to Player and Clan Lookups.
  • Renamed All Stats to Overall Stats to better reflect what those stats are considered by both Wargaming and the general community, rather than actually being the sum of all of the battles a player ever played in.
  • Added "All Stats", which is now actually all battles a player has ever played in that is reported by the WG tanks API (Pub, Clan Wars, Tank Company, Team, and Stronghold).

Sunday, March 29, 2015

Changelog for 2015-03-29


  • Fixed issue with viewing list of players with a given tank on clan home and clan tanks pages in some rare cases.
  • Added check to remove outdated or incorrect player tank ownership data when updating player's tanks.

Wednesday, March 25, 2015

Changelog for 2015-03-25


  • Fixed issue loading user data for players not in clans due to changes in WG API.

Monday, March 23, 2015

Changelog for 2015-03-23


  • Fixed clan data loading failing due to changes in WG API.
  • Fixed spelling error in footer.

Thursday, March 19, 2015

Changelog for 2015-03-19


  • Fixed issue with Clan Lookup for clans with members whose accounts are locked. Locked accounts are now ignored (WG's API reports absolutely no useful data about them beyond clan specific information [rank, join date, etc...]) and a warning message is displayed indicating the number of locked accounts.

Saturday, March 14, 2015

Changelog for 2015-03-14


  • Added check to prevent possible error when displaying list of player's who own a given tank on the Clan's tank list.

Thursday, March 12, 2015

Changelog for 2015-03-12


  • Disabled Fame pages.
  • Improved CSP Report filtering capabilities.

Wednesday, March 11, 2015

Changelog for 2015-03-11


  • Fixed New Match page loading every single code you clan ever had into the code select box (it now arbitrarily limits it to the 10 most recent ones).
  • Added batching to reduce the number of records loaded at any given time for hourly background tasks.

Sunday, March 8, 2015

Daylight Savings

Automatically generated codes for today have ended up having their times shifted by an hour. This was caused because an hour is "lost" in the jump forward, however when counting hours from midnight an hour wasn't "lost" from the total being counted, while one was lost due to daylight savings. I've switched from counting up from midnight to just subtracting the current time then counting up from there, which solves this problem though I don't think it's a foolproof solution for all time zone shifts (if Clan Tools ever goes beyond the NA server).

Additionally, I'm aware that yesterday the codes weren't automatically generated; I believe this is caused by a lack of resources at times which causes the scheduler to fail. I'm currently testing some methods to reduce memory usage on the server, but in the mean time I'll be checking that the codes are being automatically generated and manually triggering them to do so if they aren't.

Friday, March 6, 2015

Changelog for 2015-03-06


  • Added a comparison of the gold remaining in the treasury between the current payout and the reference payout (if set) on the Other Data tab to provide an idea of how the treasury's reserve is changing week to week. Note that this correctly accounts for any Deferred User Credit to give the true growth if all deferred user gold would be paid out.
  • Added option 'Apply Day Multiplier Rules to Additional Shares and Additional Gold' for Payouts under Day Settings tab to set if Day Multiplier Rules for the payout apply to the per-a-user, per-a-payout 'Additional Shares' and 'Additional Gold' fields. The default applied to existing Payouts is 'Yes', to match how the system always performed previously.
  • The reference payout (if set) is now shown under the Other Data tab.
  • Renamed 'Additional Static Gold' to 'Additional Gold'.


  • Gold values in the reserve report are now formatted with commas.
  • Multiplier rules for 1 day being displayed as 1 days.
  • Some date fields not having calendar display on click.

Tuesday, March 3, 2015

Changelog for 2015-03-03


  • Fixed CSP Violation on Player Lookup page related to WoTLabs sig expander.

Sunday, March 1, 2015

Changelog for 2015-03-01 (2)


  • Fixed issue where going back would display JSON data in some cases due to browser cache.


I've switched from simply preventing any AJAX request from being cached (which is the root of the issue; browsers get confused because the HTML and JSON pages share the same URL and are selected via request headers) to adding an arbitrary param to all AJAX requests. The result should be the same in terms of fixing the actual issue, but this solution is cleaner as it is effectively just helping the browser so it doesn't get confused.

Changelog for 2014-03-01


  • Battle Reports' player list for replays sorting by player name now matches WoT website.
  • Fixed issue in client side error reporting code.

Saturday, February 28, 2015

Changelog for 2015-02-28


  • Code Type Editor now uses a similar tab format to Payout Editor.
  • The Clan's Application link is now displayed on the Clan's Application Settings page. In addition the link is now listed on the Clan's Application list page.


  • Fixed searching match types displaying records from Application Statuses.
  • Fixed sorting Away Entries not working.
  • Fixed possibility of race condition for pages with charts, at times causing the entire page to stop working.
  • Fixed graphical glitch on User's Tanks header.
  • Fixed issue revoking codes via certain interfaces when multiple codes of the same type exist for the same day.
  • Fixed several issues causing saving of player data to fail; additionally improved error reporting for the part of the system which was failing to improve detection of any issues for the system.

Other Changes

I have rewritten several large parts of the client side code and changed how some styles were applied to maximize the security benefit from enabling Content Security Policy (a security feature implimented by most modern browsers) for the site.

There should be no loss of functionality, and very minimal changes to how a few things look as a result of these changes. The Content Security Policy for the site is currently set to an advisory only mode (any violations are logged but not stopped); in a week or two, provided no significant problems arise, I'll switch it to actually stopping violations.

Thus, the net result is that Clan Tools will be more secure for those who are using supported browsers.


  • Battle Reports' player list for replays are no longer case-insensitive due to a lack of compatibility with the method used and the updated libraries.
  • Twitter "Newest Tweet" box's link colors are no longer themed; cannot be fixed as it is a result of enabling content security policy on the site.

Monday, February 23, 2015

Changelog for 2015-02-22


  • Fixed codes last valid 7 or more days ago not having their keys cleared, leading to potential key exhaustion.
  • Improved error reporting when code key generation fails due to not being able to find a new unique key.

Monday, February 16, 2015

Changelog for 2015-02-16


  • Added Target Share Value for Payouts; if set, the share value will not exceed the target share value and a warning will be displayed if there is not enough gold to meet the target share value.

    This setting is under the "Other Options" tab in the Payout Creation and Modification pages.

Thursday, February 12, 2015

Changelog for 2015-02-12 (2)


  • Fixed issue where filtering by clan name on Clan Wars Map > Details wouldn't filter down to no entries.

Changelog for 2015-02-12


  • CSRF Unverifiable Request Errors now correctly report their cause rather than displaying a 500 error.
  • Reduced the length of keyed download keys.

Wednesday, February 11, 2015

Changelog for 2015-02-11

Rare Internal Server Error

I've noticed the rare occurrence of what would be displayed as an Internal Server Error related to content that is dynamically loaded on page load, specifically user's Attendance Overview. This is actually a security mechanism (CSRF) flagging the request; to the best of my knowledge it shouldn't be happening under normal conditions. I have a few theories, but it's hard to put them to the test when its such an intermittent issue.

Regardless, I've changed how the requests are made so it shouldn't be an issue anymore.

Sunday, February 8, 2015

Changelog for 2015-02-08

Changes to Clan Wars Maps Province List

The CW Map's province list has been changed; notable degradations are the loss of landing participants counts and province ownership in hours (now only days are displayed). These degradations are due to limitations with the new API being used. This switch was needed as the former solution relied on data loaded by the clan tools server, the vast majority of which has long been unneeded for anything but this listing.

Beyond that, two new tabs have been added, one which provides information on the clans with land on the map, and one which provides some information about the map itself. In light of these additions the Provinces page has been renamed to Details.

Other Changes

  • Added Player Graphs to Player Applications.
  • Removed Name and Description fields from Clan Application Question editor.

Saturday, February 7, 2015

Changelog for 2015-02-07


  • Fixed trying to perform a modification to a non-existing payout causing an internal server error rather than displaying a record not found page.
  • Fixed spelling error on code type's edit page.

Changelog for 2015-02-05


  • Fixed tanks list and tanks performance filters not applying when changed on clan home page.

Wednesday, February 4, 2015

Changelog for 2015-02-04


  • Added charts to Player Lookup.


  • Fixed error when clan had no code types for Activity page.
  • Added workaround for WG's API returning invalid clan data on newly added members.

Sunday, February 1, 2015

Changelog for 2015-02-01

Clan Member List Improvements

The clan member list has be improved in a number of ways:

  • A user's primary* Clan Tools group is now displayed instead of their clan role.
  • Multiple users can be selected to mass edit group memberships and settings.
  • Smarter search allows for searching username, group name, and tags (!away and !inactive).
  • Added edit links for user's away entries and user's groups.
  • Historic Activity and currently away status are now listed for each user.

Other Changes

  • Display Members, Tanks, and Tanks Performance on Clan's home page.
  • Added Average XP per a tank in the player lookup page.
  • Reworked code to work with WG's new Clan API methods.


  • Fixed Javascript error related to IE.
  • Possibility of battles at 23:59:59 not being displayed.


* A user's primary group is the group with the highest weight value out of all of the groups they are a member of, either implicitly via their clan role, or explicitly assigned to them.

It should be noted that, in general, this change makes the names of the clan's groups visible to all clan members. I personally only see this as a benefit, as it gives more "value" to any custom groups users are assigned to. That said, I'm open to feedback.

Additionally, people outside of your clan will only see the World of Tanks' roles when viewing your clans member list on clan tools.

Wednesday, January 28, 2015

Changelog for 2015-01-28

  • Changed Payout Quick View and Pay View sorting to case insensitive to match WG's updated clan page.
  • Fixed rare issue where trying to delete a code type which could not be deleted would cause an internal server error rather than giving the reason that the code type could not be deleted.

Tuesday, January 20, 2015

Changelog for 2015-01-20

Payout Locking

Previously, payouts were locked by completing them. The idea behind this was that a payout would be completed, then the gold for that payout would be paid out. This approach would help ensure that the payout records were accurate. However, this approach has some drawbacks.

To solve these, a new more temporary and smart locking mechanism has been added. This new lock allows a single person to lock a payout from being modified (or deleted) by anyone but themselves.

As such, the new recommended workflow for payouts is to create a new payout locked to the creator (the default), perform any necessary modifications, review the payout, perform the actual distribution of gold, then complete the payout.

For environments where several people might need to edit a payout before it's ready to be paid out, new payouts can be created without a lock, and the lock can be toggled on and off.

Additionally, the use of locks is optional. Though, as always, several aspects of Clan Tools require completing payouts when they have been paid out to function.

Gold payouts in Attendance Record

Some time ago Wargaming broke gold pay from your clan showing up ingame. To help alleviate this issue I've added recently completed payouts involving the user to their short-term "Attendance Record" displayed on the main page.

It's important to note this information is using the payout data from completed payouts on Clan Tools; Wargaming hasn't added the clan's treasury log to the API, so pulling the actual data isn't an option at the moment.

Historic Activity on User's Profiles

In a step towards improving the usefulness of user's profiles on Clan Tools, their historic activity is now displayed along side the short-term attendance record.

Defer Pay Option

Users can now opt to defer their pay, this will cause any gold they would otherwise be paid out to be instead added to their gold balance with their clan. Then, at some point in the future, the user can "withdraw" this gold by unchecking the defer pay option in their settings and waiting for the next payout.

Other Payout Changes

  • Upon completion, debit values are dynamically recalculated in case a user's debit has changed since the payouts' last calculation. This means there is no longer the need to recalculate a payout if a user's debit value changed in order to complete it.
  • Switched Payout Quick View and Pay View sorting to case sensitive by name to match Wargaming's as the other sorting method was more resource heavy.
  • Added Ignore Deferred Pay option, default of False (unchecked).


  • Fixed the wrong user clan settings being used during payouts in some cases.
  • Clan Lookup now correctly displays an error if the API returns no data.

Friday, January 16, 2015

Changelog for 2015-01-16


  • Fixed an error when loading clan data if one or more clan members owned a tank which was missing from the Clan Tools tank list.
  • Fixed Datatables error on Clan's Tank list when detailed availability data is not available.
  • Fixed missing mapping for Stalingrad map.