Thirty classic puzzles for Unreal Engine with a built-in solver. Every start arrangement is generated by the solver, so it is always solvable and its difficulty is measured: you see the exact shortest solution in the Details panel before you press Play. Puzzles chain into an escape room — one solved puzzle unlocks the next, a gate waits for several, a door opens.
Everything is set in the Details panel and driven from Blueprint. No code, no input assets, no data tables.
Puzzle Room Kit Content/Demo/Maps →
open PRK_Demo and press Play: two rooms, fifteen puzzles. Click the door to walk into the second room
(PRK_Demo_Study, an always-loaded sublevel of PRK_Demo; open it through PRK_Demo).
PRK_House holds all thirty: a hall, a corridor and six rooms, every door unlocked so you can walk in anywhere.
In the hall, pull the lever on the theme console to switch the theme while you play; the board on the wall lights
a lamp for every puzzle you solve.
Walk with W A S D, click a puzzle to work on it, walk away (or Escape / Tab) to step back, H for a hint.
A gamepad works too: sticks walk and look, A uses, B steps back, Y gives a hint.
One-click themes: Project Settings → Plugins → Puzzle Room Kit → Theme (Vintage, Sci-Fi, Horror, Modern).Puzzle Room Kit Content/Blueprints → drag a puzzle (e.g. BP_PRK_SlidingTiles) into
the level. Every kit actor has its Blueprint there — puzzles, door, gate, theme switch, progress board, name plate — and Ctrl+B on a
placed one finds it.| Pick a difficulty: Details → Puzzle → Difficulty → press Generate. *Puzzle | Stats* shows the exact shortest solution. |
| # | Actor | How it plays | Main settings |
|---|---|---|---|
| 1 | PRK Sliding Tiles | Slide numbered (or picture) tiles into the gap until they are in order. 3 × 3. | Tile Face (Numbers / Picture), Picture |
| 2 | PRK Toggle Grid | Each button flips a pattern of lights. Turn them all off (or on). | Columns, Rows (2–4), Pattern, Goal All On |
| 3 | PRK Ring Lock | Concentric rings; turning one turns its linked rings. Align every symbol. | Rings (2–5), Positions (4–12), Link |
| 4 | PRK Tower | Move the tower to the glowing right-hand peg; a disc never goes on a smaller one. | Discs (2–8), Classic Start |
| 5 | PRK Rotating Tiles | Turn picture tiles upright; linked tiles turn too. 3 × 3. | Link (Alone / Cross), Picture |
| 6 | PRK Memory Sequence | Lights flash in order; press them back. A mistake replays it. | Columns, Rows (2–4), Flash Time, Pause Time |
| 7 | PRK Linked Sliders | Click above a knob to push it up, below to pull it down; linked knobs move with it. A knob glows on the middle notch: bring them all there. | Sliders (3–6), Link |
| 8 | PRK Sliding Blocks | Drag blocks along their grooves to free the key block. 6 × 6. | — |
| 9 | PRK Laser Mirrors | Turn mirrors so the beam reaches the receiver. 5 × 5. | Mirrors (3–8), Beam Color |
| 10 | PRK Pressure Plates | Floor plates: stepping on one flips it and its neighbours. Walk the solution. | Columns, Rows (2–4), Pattern, Step Margin |
| 11 | PRK Rotating Pillars | Four-sided stone pillars; turning one turns its linked pillars. Show the sun on all. | Pillars (3–5), Link |
| 12 | PRK Knight Swap | Brass and bronze knights trade sides with chess knight moves: each heads for the edge of its own metal and glows there. | Columns, Rows (3–4) |
| 13 | PRK Frogs and Toads | Frogs hop right, toads left, one step or over one of the other kind. Swap the sides. | Per Side (2–4) |
| 14 | PRK Water Jugs | Pour between jugs of 8, 5 and 3 units until one holds the target amount. | Target (1–7) |
| 15 | PRK Peg Solitaire | 15-hole triangle: jump a peg over a neighbour, the jumped peg is taken. Leave one. | Start Hole, Finish In Start Hole |
| 16 | PRK Combination Safe | Wall safe, right-left-right dial: each number clicks and lights a lamp when reached turning its way. | Numbers, Positions, Code, Tumbler Feedback |
| 17 | PRK Code Breaker | Guess the hidden four-pawn colour code; solid pins = right colour and slot, ring pins = right colour elsewhere. | Colors, Rows, Code |
| 18 | PRK Gear Train | Turn the crank gears; meshing gears turn the other way. Point every arrow up. | Layout |
| 19 | PRK Tilt Maze | Tip the box by a handle: balls roll until they hit something. Drop each ball in its own hole. | Columns, Rows, Balls, Layout |
| 20 | PRK Crate Push | Walk the little worker, push crates onto the brass plates. Crates can’t be pulled. | Columns, Rows, Crates, Layout |
| 21 | PRK River Crossing | Ferry everyone across; the boat won’t leave a bank in danger. Wolf-Goat-Cabbage or Goats-and-Wolves. | Variant, Start Across |
| 22 | PRK Balance Scale | Level the beam: weights on either pan against a canister of unknown mass. | Weights, Masses, Unknown Mass |
| 23 | PRK Pipe Flow | Turn pipes until water runs from the tap to the outlet; sight glasses show how far it gets. | Columns, Rows, Layout |
| 24 | PRK Nonogram | Fill stone squares so every row and column matches its numbers; a picture appears. 5 × 5. | Picture |
| 25 | PRK Clock Hands | Buttons wind several clocks by different amounts. Set every clock to the small dial’s time. | Button Minutes, Turn Back, Target Hour/Minute |
| 26 | PRK Fuse Box | Knife switches feed AND / OR / XOR gates; light every gate lamp and the main lamp. | Switches (3–8), Gates |
| 27 | PRK Queens | Place queens so none attacks another; one solution, Difficulty sets the logic it needs. | Size (6–8), Layout |
| 28 | PRK Ball Sort | Move balls between glass tubes, onto an empty tube or the same colour, until each tube holds one colour. | Colors (2–4), Spare Tubes, Layout |
| 29 | PRK Chinese Rings | Take every ring off the loop; a ring moves only when the one before it is on and all earlier ones are off. | Rings (3–7), Classic Start |
| 30 | PRK Cryptex | Turn letter rings (linked rings turn along) until they spell the word on the clue card. | Rings, Letters, Word, Links |
Frogs and Toads, Water Jugs, Peg Solitaire, Crate Push and Ball Sort have moves that cannot be taken back, so a player can get stuck. The puzzle notices: it plays its Locked Sound and puts itself back to its start a moment later (Reset When Stuck), and fires On Stuck.
| Setting | What it does |
|---|---|
| Difficulty | Easy / Medium / Hard / Expert = the shortest solution is 25–40 / 45–65 / 70–90 / 92–100 % of the hardest start this puzzle can have. Custom = exactly Target Moves. |
| Target Moves | Exact shortest solution (Custom only). Clamped to Hardest Possible. |
| Seed | Same seed + same settings = same puzzle. |
| Generate (button) | New seed, new solvable start at the chosen difficulty. |
| Generate On Begin Play | A fresh start every time play begins, instead of the one you see in the editor. |
| Lock When Solved | Ignore moves after the puzzle is solved. |
| Reset When Stuck | When no solution is left, say no and go back to the start (puzzles whose moves can’t be undone). |
| Start Locked | The puzzle can’t be used until something activates it (see Escape room chains). When it is unlocked it plays Unlock Sound and glows for a moment. |
| Activate When Solved | Doors, gates, lights or locked puzzles to activate when this one is solved. |
| Stats (read only) | Shortest Solution, Hardest Possible, Reachable Arrangements, Starts This Hard. |
| Focus | Close-up camera: Field Of View, Pitch, Margin, Blend Time, Leave When Solved. The camera frames the puzzle on its own and moves in front of a wall or shelf that would block it; change Pitch for a floor or table puzzle. Focus Light (lux, 0 = off) is a soft shadowless fill from above the camera while focused, so a puzzle reads in a dark corner too. |
| Look | Meshes, materials, colours and animation times. Every mesh slot says where its pivot must be. |
| Sound | Move Sound (every move, hints included; each puzzle type has its own), Solved Sound, Locked Sound (a locked puzzle is tried, a move isn’t allowed, the player is stuck; Memory Sequence: a wrong press), Unlock Sound, Sound Volume. Played at the puzzle, fading out by 15 m. Empty = silent. |
PRK Door: Locked (off = the player clicks it open; on = a click rattles it and plays Locked Sound), Motion Swing (Open Angle)
or Slide (Slide Offset), Open Time, Start Open, Open Sound, Next Level (walk through the open door → short fade → that level loads);
Blueprint Open, Close, Rattle, Is Open, event On Opened.
Showing progress. PRK Progress Board hangs on a wall: a brass slot per puzzle with its name and a lamp that lights once
it is solved (up to 30). Puzzles sets which and in what order; empty = every puzzle in the level, by name. Title is engraved above
the slots. Get Solved Count, event On All Solved (e.g. open the final door from the Level Blueprint).
PRK Name Plate is a brass plate engraved with a puzzle’s name (Puzzle) or your own Text: on its stand for a table or plinth,
or flat for a wall (Stand off). The names use the kit’s relief capitals A–Z; the letters take the theme’s ink colour.
Puzzle Room Kit Content/Showcase/Meshes has the display plinths the demo uses (tall 70 × 70 × 86 cm, low 70 × 100 × 45 cm).
PRKGameMode gives you a first-person player that walks, looks around and clicks puzzles. Its controller (PRKPlayerController) has: Built In Movement, Interact Distance (300 cm), Look Sensitivity, Interact Keys (left mouse, E, gamepad A), Leave Keys (Escape, Tab, W A S D, gamepad B), Hint Keys (H, gamepad Y).
Gamepad, no setup: the left stick walks, the right stick looks (Gamepad Look Speed). In a close-up either stick moves the cursor (Gamepad Cursor Speed), A clicks under it and X right-clicks (Gamepad Click Key, Gamepad Right Click Key). Every puzzle can be solved with clicks alone, so every puzzle works on a gamepad.
Players learn it by looking, no text needed. A small dot marks the centre of the screen. It turns into a ring over a puzzle or door that can be used, while the puzzle glows softly, and into a padlock over a locked one; under a locked door, pips count the puzzles its gate still waits for (PRKHUD, Reticle Color). In the close-up, the piece under the cursor glows with everything a click on it would move, and the cursor becomes a hand. The glow is custom primitive data 1, read by the kit materials. To light your own materials the same way, read a scalar parameter with Use Custom Primitive Data, index 1.
Using your own player: in your game mode set Player Controller Class to PRKPlayerController (or reparent your own player controller Blueprint to it: Class Settings → Parent Class) and HUD Class to PRKHUD for the reticle. Your character keeps its own movement and camera, first or third person. The interact key uses the puzzle or door in the middle of the screen, and Interact Distance counts from the character, so a third-person camera behind it does not shorten the reach. If a key clashes with your game (left mouse fires a weapon, say), edit Interact Keys on the controller.
Your own player controller logic: call the puzzle yourself — Focus (Player Controller) when the player
interacts with it, Unfocus to leave, Play Hint Move for a hint. Focus moves the view to the close-up and turns on the mouse
cursor and click events, so the pieces work with your controller. For gamepad cursors or touch, call
Click At Screen Position on PRKPlayerController, or Begin Drag At / Drag To / End Drag on Sliding Blocks.
Pressure Plates need no focus: any pawn that walks onto a plate presses it.
Every puzzle
| Node | |
|---|---|
Generate |
New solvable start at the current difficulty. |
Generate At Difficulty (Difficulty, Target Moves) |
New solvable start at another difficulty — e.g. harder each level. |
Reset Puzzle |
Back to the start arrangement. |
Play Hint Move → bool |
Plays the next move of a shortest solution (from a dead end: back to the start). |
Set Solved (Play Sound) → bool |
Jumps straight to a solved arrangement and runs the chain as a real solve does — for loading a saved game. |
Is Solved, Is Locked, Get Moves Made, Get Moves Left |
State. Moves Left = shortest number still needed. |
Focus (Player Controller) → bool, Unfocus, Get Focused Player |
Close-up view. |
Activate (Source) |
Unlocks a locked puzzle (PRK Activatable). |
| Event On Solved (Moves Made) | Once, when the puzzle is solved. |
| Event On Moved (Moves Made, Moves Left) | After every move. |
| Event On Stuck | A move left no way to the solution (puzzles whose moves can’t be undone, e.g. Peg Solitaire, Crate Push). |
Set Hovered Part (Part, Location) → bool, Set Highlighted |
The glow, for your own player or UI (PRKPlayerController calls them). |
Per puzzle — every move a player can make is a node, so you can drive puzzles from your own input, a tutorial or a test
(each puzzle also has a Get Hint … node that names the solver’s next move without playing it):
| Puzzle | Moves | State |
|---|---|---|
| Sliding Tiles | Try Move Tile (Tile) |
Get Layout |
| Toggle Grid | Press Button (Column, Row) |
Is Light On, Get Lights |
| Ring Lock | Turn Ring (Ring, Direction) |
Get Ring Position |
| Tower | Move Disc (From, To), Select Peg |
Get Peg Of Disc |
| Rotating Tiles | Turn Tile (Cell, Clockwise) |
Get Turns |
| Memory Sequence | Press Button (Column, Row), Play Sequence |
Is Playing Sequence, Get Sequence, event On Mistake |
| Linked Sliders | Move Slider (Slider, Direction) |
Get Notches |
| Sliding Blocks | Move Block (Block, Cells), Begin Drag At / Drag To / End Drag |
Get Board |
| Laser Mirrors | Turn Mirror (Index, Clockwise) |
Get Turns, Get Mirror Cells, Is Target Lit |
| Pressure Plates | Press Plate (Column, Row) |
Is Plate Lit, Get Plates, Get Plate Under (Pawn) |
| Rotating Pillars | Turn Pillar (Pillar, Direction) |
Get Pillar Face |
| Knight Swap | Move Knight (From Column, From Row, To Column, To Row) |
Get Knight At |
| Frogs and Toads | Move Piece (Pad) |
Get Piece At |
| Water Jugs | Pour Jug (From, To) |
Get Amount |
| Peg Solitaire | Jump Peg (From, To) |
Has Peg, Get Pegs Left |
| Combination Safe | Turn Dial (Direction) |
Get Dial Number, Get Numbers Caught, event On Tumbler |
| Gear Train | Turn Gear (Gear, Direction) |
Get Gear Angle, Is Gear Up, Is Driver, event On Gear Turned |
| Pipe Flow | Turn Pipe (Cell, Clockwise) |
Is Pipe Wet, Get Wet Pipes, Get Pipe Turn, event On Flow |
| Fuse Box | Flip Switch (Index) |
Is Switch On, Is Gate Lit, Get Gates Lit, event On Gate Changed |
| Tilt Maze | Tilt Board (Direction) |
Get Ball Cell, Is Ball Home, event On Ball Dropped |
| Nonogram | Toggle Cell (Column, Row), Toggle Mark |
Is Cell Filled, Get Row Clue, Get Column Clue |
| Code Breaker | Cycle Slot (Slot, Direction), Pull Lever |
Get Guess, Get Pins, Get Guesses Made, event On Guess |
| Cryptex | Turn Ring (Ring, Direction) |
Get Shown Word, Get Linked Rings, event On Ring Turned |
| Ball Sort | Move Ball (From, To), Click Tube, Put Back |
Get Ball Color, Is Tube Complete, event On Tube Completed |
| Clock Hands | Press Button (Button, Direction) |
Get Hour, Get Minute, Get Target Hour, event On Button Pressed |
| Chinese Rings | Move Ring (Ring) |
Can Move Ring, Is Ring On, Get Rings On, event On Ring Moved |
| Crate Push | Push Crate (Crate, Direction), Walk To (Cell) |
Get Crate Cells, Get Crates On Targets, event On Crate Pushed |
| Balance Scale | Move Weight (Weight, To), Step Weight |
Get Weight Place, Get Imbalance, event On Weight Moved |
| River Crossing | Move Figure (Figure), Cross River |
Get Figure Place, Get Figures Across, events On Crossed, On Refused |
| Queens | Toggle Queen (Column, Row) |
Has Queen, Get Queens Left, Get Clashing Queens |
Gate: Get Activated Count, Get Required Count, Is Complete, event On Complete.
Player controller: Get Focused Puzzle, Get Puzzle In View, Click At Screen Position.
1. A message when a puzzle is solved.
Select the puzzle in the level → Level Blueprint → right-click → Add On Solved. From the event: Print String
(“Solved in {Moves Made} moves”). The puzzle already plays its Solved Sound; add Play Sound 2D for music or a voice line.
2. A hint button in your own UI.
Button On Clicked → Get Player Controller → Cast To PRKPlayerController → Get Focused Puzzle → Is Valid → Play Hint Move.
3. A move counter.
Add On Moved for the puzzle → set your widget’s text to Moves Left (“{Moves Left} moves to go”).
Because the solver knows the exact shortest solution, the counter is honest: it drops by one for every good move and grows after a bad one.
In puzzles whose moves can’t be undone (Peg Solitaire, Crate Push…) it reads -1 once the player is stuck — a good moment to offer a hint or a reset.
4. Harder every round.
On Solved → Delay 2 s → Generate At Difficulty (Difficulty = Hard) → Focus (Get Player Controller).
For a smooth ramp use Custom and raise Target Moves each round.
5. Saving progress.
Save: for every puzzle in the level, Is Solved → store the solved ones in your SaveGame (e.g. a Set of actor names).
Load (Level Blueprint BeginPlay, after loading the SaveGame): for each stored puzzle call Set Solved. The rest follows as in play —
doors open, locked puzzles unlock, gates count, the progress board lights its lamps — without replaying a single move.
Themes (one click). A theme is a set of look layers, not just a re-skin. Four come with the kit in
Puzzle Room Kit Content/Themes: Vintage (the kit’s own look), Sci-Fi, Horror, Modern. Each DA_PRK_Theme_* holds:
Theme.<Name> show only while that theme is on (crates and cables, barrels, plants, clocks…).| One puzzle or door: its Theme (Puzzle | Look / Door | Look) wins over the project’s. |
Set Theme For All (Blueprint) re-skins the level and keeps every puzzle’s progress — e.g. a lever that
turns the room into its Horror version. None = back to the project’s theme.Your own theme: duplicate a DA_PRK_Theme_* and change any layer. Materials and meshes you don’t list keep the kit look;
your own materials and meshes are never touched unless you list them. Leave Lights, Fog or Ambience at their defaults to keep the level’s own.
BP_PRK_* into your folder (e.g. BP_MyPressurePlates), open it → Class Defaults →
Puzzle|Look → your meshes and materials. Every copy you place uses them, and a change to your Blueprint updates them all.
The puzzle logic doesn’t depend on the meshes: a swapped mesh plays and solves the same.On, vector Color);
set the colour with On Color.M_PRK_Surface in Puzzle Room Kit Content/Shared/Materials
(Tint, Roughness Add, Tiling, Detail Amount). Parts that share a mesh get their own texture offset, so a board of squares
doesn’t repeat one grain.Shared/Sounds) are edited from CC0 recordings by Kenney and BigSoundBank.Questions, bugs or requests: open an issue at https://github.com/josephs-assets/PuzzleRoomKit/issues.
Please include your engine version, the puzzle, and any Output Log lines that start with LogPRK.