
Mora Jai is a fan-made puzzle game inspired by Blue Prince and its iconic Mora Jai puzzle boxes. While preserving the original mechanics, this project introduces a distinct visual style influenced by Japanese aesthetics, combining minimalism, color symbolism, and a serene atmosphere.
👉 Play the game here: https://sdurrenmatt.github.io/mora-jai/
Mora Jai revolves around a 3×3 puzzle grid where each tile has a color and triggers a specific effect when activated. The challenge is to understand the interactions and solve increasingly complex puzzles.
- Click tiles to activate their effects.
- Match the four corner tiles to the target colors to open the box.
- Plan your moves carefully. Tiles can affect themselves and nearby tiles.
- Solve the puzzle to unlock seasonal rewards and progress through levels.
The tile moves are the same as those in Blue Prince:
| Color | Effect |
|---|---|
![]() |
Has no effect |
![]() |
Turns gray, toggles adjacent tiles white/gray |
![]() |
Shifts the row to the right |
![]() |
Turns black tiles red and white tiles black |
![]() |
Rotates adjacent and diagonal tiles |
![]() |
Changes to the majority color among adjacent tiles |
![]() |
Moves upward |
![]() |
Swaps with the opposite tile |
![]() |
Mimics the center tile |
![]() |
Moves downward |
Understanding how certain tiles interact (like Blue and Red) can help you chain effects and solve puzzles faster.
Completing puzzles unlocks season-themed illustrations.
Players can collect up to 10 illustrations per season, totaling 40 unique rewards.
Reward Examples:
| Spring | Summer | Autumn | Winter |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
Mora Jai is developed with React, TypeScript, and Vite for fast and maintainable development.
To design the 40 levels, a mix of Breadth-First Search (BFS) algorithms and manual selection was used, ensuring each puzzle is unique, challenging, and solvable while demonstrating the game's mechanics.
This project is not open source, but user feedback, bug reports, and suggestions are warmly welcomed.
Reach out via the project page or open an issue to share your thoughts!













