When is a move considered complete in xiangqi?

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

In over-the-board formal play, a move is complete the moment your hand releases the piece on its destination point; adjusting a piece without releasing does not count as moving it, provided you announced the adjustment first. Online, a move is complete the instant it is submitted, and there is no equivalent grace period for hovering.

Why the release matters

It is the dividing line for touch-move: touching a piece obliges you to move it if it has a legal move, but you are not committed to a specific destination until you let go. This is exactly why announcing "I adjust" (or the local equivalent) before touching a piece you only want to straighten matters so much, and it is a separate question from whether a completed move can later be taken back (it cannot).

Why online play differs

There is no physical release to mark the boundary, so the client's submission is the rule instead. Drag-and-drop interfaces, click-to-move interfaces and premove features all define "submitted" slightly differently, which is worth checking on any server before you rely on changing your mind mid-drag.

Related questions

Can I change a move before releasing the piece?

Yes, in formal over-the-board play, as long as you have not let go of it.

Does a premove online count as complete before it is your turn?

It commits the moment your turn arrives and the move is legal; if it is illegal by then, it is simply not played.

Try it on a real board

Reading an answer is one thing; playing it is another. Free, instant, and nothing to install.