KWET

Data collection

When to send which data

KWET computes everything from what it is sent. A capture at the right moment gives a complete week; the same capture two days early leaves a gap nothing can fill. Here is, data by data, the moment that matters and why.

KWET is a statistics tool: it does not connect to the game and extracts nothing from it. It only reads the documents your alliance sends it. Which sending tool you use, and whether it respects the game's terms of use, is the alliance's own choice.

Get lwvs, the sending tool

lwvs is a free Windows program, made for KWET. One R4 who plays Last War on PC installs it; nobody else in the alliance has anything to install.

Download lwvs 0.6.0 for Windows

This button always gives the latest version. It is a ZIP: unzip the whole folder, lwvs.exe is inside. What's new and older versions

How it works, in short

lwvs listens to what the game receives on your PC, through Wireshark. When you open a ranking screen in the game, the game downloads that ranking: lwvs reads it at the same moment. It sends nothing to the game, changes nothing in it and never touches your account. Desert Storm, Canyon Storm and trains are read from the result mails the game keeps on your PC, without Wireshark. Nothing leaves your PC until you click “Send to the site”.

Install it, step by step

  1. Install Wireshark (wireshark.org, free). During installation, leave Npcap ticked, and do NOT tick “Restrict Npcap driver's access to Administrators only”.
  2. Unzip the lwvs folder somewhere you can write (Documents, not Program Files) and double-click lwvs.exe. If Windows says “Windows protected your PC”, click “More info”, then “Run anyway”: the program is simply not signed.
  3. In lwvs, “Settings” → “Stats site”: paste your site address (https://<alliance>.kwet.eu) and the token from R4 Tools → Ingest, then “Test the connection”.
  4. Launch Last War, then “Start capture” in lwvs. Open the screens you need in the game (a screen already open must be closed and reopened), then “Stop” and “Send to the site”.

Everything lwvs can send

  • VS (Alliance Duel)

    Screen: Alliance Duel ranking.

    Each member's points for every duel day, and the week's total.

  • Kills

    Screen: alliance members ranking.

    Each member's kill counter. It only ever goes up, so the site computes the week's kills from two captures.

  • Donations

    Screen: alliance members ranking (same capture as kills).

    Donation points of the day and of the week, for each member.

  • Ranks R1 to R5

    Screen: alliance members ranking (same capture as kills).

    Each member's rank. It also builds the roster: who joins, who leaves, who becomes R4.

  • Total hero power (THP)

    Screen: server ranking, hero power tab.

    Each player's THP. It comes from the server-wide ranking, so only the top 200 appear.

  • Seasonal events (Spice Wars…)

    Screen: the event's personal ranking.

    Each member's event points. You tell lwvs which event it is.

  • Desert Storm and Canyon Storm

    Source: the result mails, read on the PC (no capture needed).

    One result per battle and per team: each player's points.

  • Storm sign-ups

    Screen: the team A or B sign-up list.

    Who is signed up in each team, starter or substitute.

  • Alliance trains

    Source: the train mails, read on the PC (no capture needed).

    For each train: the conductor and the VIP or Guardian, and whether the train was bought.

What lwvs never sends: passwords, chat, private messages, resources, your base. Each line only carries a player's in-game identifier, name and the number shown on the screen. Apart from THP, only your own alliance is kept.

The week's schedule

  • VS: the duel days

    Twice: on Saturday, then on Sunday. More often if you like.

    The Saturday capture holds Monday to Friday complete, plus Saturday so far. The Sunday capture completes Saturday: the game no longer shows it, but it is still in the data received. The week is only complete with both. Captures in between keep the site current; nothing is counted twice.

  • Kills

    At least once on Sunday.

    Sunday comes after Enemy Buster day, when kills climb the most — it is often what separates two weeks. A week's kills are the difference between its last capture and the one before it: without a Sunday capture, the week stops too early.

  • Donations

    On Sunday, as late as possible before the reset (midnight server time, UTC−2).

    The donation counter starts again from zero every Monday. The week's last capture is what counts, and anything given after it is lost to the site.

  • Total hero power (THP)

    At least once a week, any day — Sunday at the latest.

    THP is a reading at one moment, not a counter. One reading a week is enough for smooth charts and for the 30-day gain. It comes from the server-wide ranking, so only the top 200 appear in it.

  • Canyon Storm: results

    Whenever you like, as long as it is after the match.

    Nothing special to do during the match: run the sending once the result has arrived. The recommended third-party tool reads the game's mails in the Windows app, so do not delete those mails.

  • Desert Storm: results

    Whenever you like, as long as it is after the match.

    Nothing special to do during the match: run the sending once the result has arrived. The recommended third-party tool reads the game's mails in the Windows app, so do not delete those mails.

  • Desert Storm and Canyon Storm: sign-ups

    Between the close of sign-ups and the start of the matches (optional).

    That is when the sign-up list is final. With it, the site compares who signed up with who actually played. Without it, results still arrive; only that comparison is missing.

  • Alliance trains

    Whenever you like.

    Each train mail tells who drove and who escorted. The mails stay in the game's mailbox, so nothing is lost by waiting: the site compares them with the schedule as they arrive.

  • Seasonal camp events

    During the event, on the day of the results.

    These events only happen during a season (about 4 weeks every 4 months). Outside the event there is nothing to send, and nothing is missing.

On your alliance's site, R4 Tools → Collection shows, for this week and last week, what arrived and whether it arrived at the right moment.

lwvs is not required

The third-party tool we recommend, lwvs, is only one way of sending data. KWET accepts any tool that follows the same contract: it does not look at who sends, only at what is sent. The data the site uses is exactly what this contract describes, nothing more.

Each ranking is one JSON document, sent by POST to https://<alliance>.kwet.eu/api/rankings with the alliance's token (R4 Tools → Ingest) in an Authorization: Bearer header.

POST https://<alliance>.kwet.eu/api/rankings
Authorization: Bearer <token>
Content-Type: application/json

{
  "mode": "kill_rank",
  "exported_at": "2026-10-18T21:40:00Z",
  "records": [
    {"uid": "123456789", "player_name": "Alpha", "score": 1520340, "rank": 1},
    {"uid": "987654321", "player_name": "Bravo", "score": 0, "rank": 2}
  ]
}
  • uid is the player's in-game identifier and the only key: names change, player_name is just a label.
  • A score of 0 means “measured, scored nothing”. A player missing from the document means “not measured”. Do not make up zeros.
  • exported_at is the time of the capture in ISO 8601 (preferably UTC), not the time of sending: it files the document under the right day and week.
  • An optional context block adds what the ranking alone does not say: the duel day (day), the opponent, the event. If it is unknown, leave it out rather than filling it with empty values.
  • Sending exactly the same document again does nothing: it is recognised by its fingerprint and ignored. You can safely re-run a sending.
  • A mode KWET does not know is kept as is, never rejected: it will be used once the site can read it.

Modes recognised today:

  • kill_rank
  • weekly_rank
  • daily_rank
  • camp_battle_rank
  • donation_weekly_rank
  • donation_daily_rank
  • thp_rank
  • alliance_role
  • desert_storm_rank
  • canyon_storm_rank
  • alliance_train

For the detailed contract (fields of each mode, the context block), write to LittleSanto on Discord.

Create my alliance Guide