Doman Mahjong, solved for you. Built on Dalamud.
Sit at a mahjong table and a small window watches your hand, suggesting the best discard and why. Three modes:
- Off: plugin sleeps.
- Hints: shows the best discard + top alternatives with reasoning. You click every move. 100% safe.
- Auto-play: plays for you with natural pacing.
- Three modes: Off / Hints / Auto-play, one click each.
- Hand, score, and discard-count readout from addon memory.
- Top-3 discard candidates with short reasoning.
- Full call handling: Pon · Chi · Kan · Riichi · Tsumo · Ron.
- Akadora-aware scoring; meld inference for chi/pon/minkan races.
- Adjustable "thinking" delay so auto-play looks human.
- Per-dispatch chat-log annotations make regressions a single log paste away.
In-game: /xlsettings → Experimental → paste into Custom Plugin Repositories:
https://raw.githubusercontent.com/XeldarAlz/DalamudPlugins/main/repo.json
Tick Enabled, click +, then Save and Close. Open /xlplugins → All Plugins, search for Doman Mahjong Solver, and install.
| Command | Action |
|---|---|
/mjauto |
Toggle the main window |
/mjauto pass <N> |
Click button index <N> on a call prompt (0 = leftmost) |
/mjauto capture <label> |
Capture the next dispatch payload to disk (debugging) |
/mjauto variant dump |
Dump client variant info (JP / OC verification) |
The mahjong addon ships under different names and memory layouts per region. EU is the reference variant; NA has the same texture base + offsets but hasn't been re-verified against v0.1.0.11. JP and OC need verification dumps.
| Feature | EU (Emj) |
NA (EmjL) |
JP | OC |
|---|---|---|---|---|
| Window detection | Yes | Yes | Untested | Untested |
| Hand / score reading | Yes | Needs re-verification (#30) | Untested | Untested |
| Discard (state-30 in-hand) | Yes | Probably yes | Untested | Untested |
| Discard (state-6 self-declare popup) | Yes | Probably yes | Untested | Untested |
| Post-call discard popup | Yes | Probably yes | Untested | Untested |
| Pon / Chi / Kan acceptance | Yes | Likely yes (#30) | Untested | Untested |
| Riichi / Tsumo / Ron commit | Yes (v0.1.0.11) | Untested | Untested | Untested |
If you're on JP or OC: seat at a Doman table, run /mjauto variant dump, and attach the file to a new issue.
Misclicked a call prompt? Click the right option yourself in-game: the plugin resumes on the next turn. Or from chat: /mjauto pass <N>.
Plugin stalled on a popup? Switch to Off, click manually, then re-enable Auto-play. If you can reproduce, run /mjauto capture <label> first: the FireCallback payload lands in pluginConfigs/Mahjong.Plugin.Dalamud/emj-captures.log and is the fastest way to get a fix shipped.
Known edge cases that can stall the bot (manual click resumes play): post-MinKan transient, two consecutive Pon offers within ~1 second.
If you liked this plugin, take a look at my other Dalamud work. You might find something else there for you.
AGPL-3.0-or-later. See LICENSE.md.
