Mahjong AI Utilities - Review your game, Play with you

Review your game


  1. Four-player games only.
  2. It only works for standard games with common rules, like those in the ranked lobbies.
  3. For Mortal engine, only hanchan games are supported.

Advanced options

📝 Rating is a commonly misused value with high variance. Use with caution.
Rating is associated with a specific Mortal network and can't be compared across different networks.

A note on rating

Rating can be misleading. It was a casual design and is heavily tied to Mortal's implementation details, which most users are unfamiliar with, and there are difficulties and challenges in spreading such knowledge. This feature was not my original intention in creating this tool, nor is it a main feature, so I didn't put much thought into it.

Rating has never been used in training, either directly (like a loss function) or indirectly (like f1-score). It has no impact on nor does it reflect the training result.

I am concerned that this rating value is diverting everyone's attention from more important matters - those individual wwyd scenes. In the end, rating is merely an average min-max scaled value without calibration or confidence intervals. Moreover, it is directly associated with a specific set of hyperparameters/parameters, making it unsuitable as a good reference. Despite this, it has oddly become a popular feature, which worries me a bit. Thus I have placed it in the "advanced options" section because it is indeed an advanced feature that requires knowledge of the background to use correctly.

Besides, the calculation of rating is based on the details table, but that table is just a by-product of the AI, serving as a means to an end, not an end in itself. Focusing too much on building the table may hinder the development of a stronger AI. In a future version, rating as well as the details table may be altered or even removed.

1. --player-id <ID>
The ID of the player to review, which is a number within 0-3. It is the number after &tw= in Tenhou's log URL, namely, the player sitting at the East at E1 is 0, and his shimocha (right) will be 1, toimen (across) will be 2, kamicha (left) will be 3. This option has higher priority over the &tw= in --url if specified.
2. See Mortal vs Mortal for comparisons.
3. --temperature <TEMP>
For Mortal engine only. It only affects displayed values and does not change action orders or ratings. Check the FAQ for details.
4. --kyokus <LIST>
Kyokus to review. If LIST is empty, review all kyokus. Example: E1,E4,S3.1, which means to review East-1, East-4, and South-3-1.

Example page

Play with you

You can summon 1~3 Mortal instances to a specific private lobby on Tenhou. They will show up as NoName, and will wait no more than 2 minutes before the game starts.

Available slots: ?

Selected quantity: 1



Check here for the FAQ of the reviewer itself.

How long does it take to review a game?

For Mortal engine, usually less than 10 seconds.

For akochan engine, 10 to 60 minutes, depending on the game length and work queue size.

How long will review reports be kept online?

Result pages older than 15 days will be deleted on the server, save them if you need.

(Mortal) I find it makes some strange suggestions that I believe are wrong.

Try again but with the more human-like network ("3.0"), which usually produces more moderate or easier-to-understand suggestions than the others.

It may seem at times that this network is stronger, but it's important to remember that statistics are more reliable than subjective feelings. If you have any doubts about the experiment or the statistics, feel free to help review the code.

Is there a Discord server?

No. If you have any questions, please feel free to discuss them in the discussion section of the corresponding repos on Github.


Powered by

Equim-chan/Mortal Equim-chan/mjai-reviewer critter-mj/akochan

Developed and maintained by

Equim (Twitter, GitHub, 天鳳)

Frontend designed by

新篠ゆう (Twitter, YouTube)

Infrastructure sponsored by

EDWARDH (Twitter)


2020-09-10 ("" era)
2022-06-26 ("" era)

Fork me on GitHub