Do online xiangqi servers follow the real repetition rules?
These answers restate the rules implemented by our open-source engine, which follows the WXF laws for movement, checkmate and both repetition rulings: a side that forces a repetition by perpetual check or perpetual chase loses rather than drawing. The chase half has not been validated against the official casebook. Where an answer refers to a specific position, that position lives on the linked reference page, where the build verifies it before publishing.
Direct answer
Many do not. Implementing perpetual chase correctly is genuinely hard, so a lot of servers fall back to a simplified rule — often treating any threefold repetition as a draw, which is the chess rule rather than the xiangqi one. It is the most common place online play diverges from tournament play.
What to check
If you are preparing for over-the-board play, find out what your server does with perpetual check. If it draws, you are practising a resource that will lose you the game in a tournament — which is worse than not practising it at all.
What this site does
Both halves. The engine records, for every move, whether it gave check and which enemy piece it renewed a threat against, tracked by piece identity rather than square because a chased piece runs. A side that checked on every move of a repeated cycle loses; failing that, a side that chased the same piece on every move loses; a cycle mixing the two is permitted and draws. What we do not claim is correctness of the chase half against the casebook, which has not been transcribed into a regression test. The same engine also verifies every position published on this site, and the build fails rather than publish one it disagrees with.
Related questions
Why is perpetual chase hard to implement?
Because what counts as a chase depends on protection, on whether the capture would be profitable, and on what the other side is doing simultaneously.
Does it matter for casual play?
Rarely — the positions are uncommon. It matters if you play competitively.