View: Multi-Page Single Page

Troubleshooting

What a note means, why a maze came out the way it did, and what to change.

Reading the notes

Whenever the generator adjusts something, it writes a note on the maze instead of quietly giving you less. The notes are listed under Generation report in the analysis pane, and in MazeData.Notes from code. Each one starts with what it is about, such as "Keys:", "Players:" or "Target difficulty:", and the sections below explain the common ones. MazeAudit.MeetsRequest(maze) tells you whether a maze got everything its settings asked for, and a pack's Re-roll > Fallbacks replaces every maze that didn't.

"Target difficulty: 4 stars not found in 60 tries; closest was 3."

The stars come mostly from the par, so the board size sets what a maze can rate. A small board can't reach 5 stars and a huge one rarely rates 1. To hit a target:

  • make the board bigger for more stars, or smaller for fewer;
  • try another algorithm: long corridors make long routes, so on a 15 by 15 square board Recursive Backtracker mazes average 4.5 stars, Hunt and Kill 4.0, and Prim 2.9;
  • raise Max attempts under Advanced, or press Auto, which raises it to 150 for 4 and 5 star targets.

The rules behind the stars are on the Generating page.

Fewer gimmicks than I asked for

Gimmicks are only placed where they do their job, and the generator says when it couldn't fit them all:

  • "Keys: the maze's loops (or portals) leave room for 1 of 3 doors that can't be walked around." A door only counts when it's truly in the way, and loops give the player ways round it. Lower Braid and Extra loops, or turn on Shortcut doors to allow doors that can be walked around. The same goes for switches and their gates.
  • "Keys: the way to the goal is too short for 4 doors." Use a bigger board, or Farthest endpoints for a longer way.
  • "Portals: room for 1 of 3 pairs the solution would actually use." Each portal must shorten the way, so it needs a long way with loops. A bigger board or more loops allows more.
  • "Gems: room for 2 of 5." Gems go off the way, in dead ends first, and each one must be collectable together with the others. A small board has few such spots, and on a rolling board a gem also has to be reachable without getting stuck. Use a bigger board.
  • "Gimmicks: no layout with traps was solvable in 8 tries; dropped the traps." That type couldn't be made to work with everything else on this board, so it was left out and the rest kept.

As a rule of thumb about one key or switch fits per 40 cells, and Auto lowers the counts to that.

"Can get stuck"

The analysis pane warns when a player can reach a position it can no longer finish from. One-way sides, switches and rolling can all cause it. Rolling mazes have it very often, just like ice puzzles, so it is reported rather than forbidden by default. You can:

  • turn on No soft-locks so only mazes without it are accepted (on Roll, raise Braid close to 1 as well, or press Auto);
  • or keep the maze and give players a Restart and Undo, as the demo does.

"Not verified" or "the state budget ran out"

The solver explores every position the players can reach, counting keys, gems and switch flips. Several rolling players, many keys and gems, or a very large board can need more positions than the budget allows, and then the maze is marked not verified instead of guessed. Raise State budget under Advanced (up to 5,000,000), or use a smaller board, fewer players or fewer gimmicks. Several rolling players need the most, and Auto raises the budget to 2,000,000 for them.

The race isn't fair

"Players: the gimmicks leave no other start exactly as far from the goal as player 1's (pars 36, 32), so the race isn't fair." On Step, every player in a race needs the same par, and with gimmicks the other players' starts are picked after the gimmicks are placed, using each cell's real par. On some boards no such cells exist. Verified generation, which the window always uses, skips these mazes and tries the next seed, so you only see this note from MazeGenerator.Generate or after every attempt missed. A bigger board or fewer gimmicks helps.

Roll or weave was ignored

  • "Movement: Roll needs a Square or Hex board" or "Roll keeps to one floor": rolling needs straight lines, which Triangle and Circular boards and stacked floors don't have, so those mazes use Step.
  • "Movement: no start could roll into the goal on this maze": rolling needs loops. Raise Braid (Auto sets at least 0.6).
  • "Weave: crossings need a Square board": weave crossings only exist on Square boards.

My shape looks wrong

  • "Shape: Heart leaves only 20 cells on this board, which is too few, so the whole board was used." Use a bigger board or a higher Fill.
  • "Shape: 4 separate pieces; joined them with 3 bridges." The shape fell apart, for example into the letters of a word, and was joined up. Turn off Connect pieces to keep only the largest piece instead.
  • Text: give it a wide board, about 6 cells across per letter and at least 9 rows. On a Square board the font's diagonal strokes only touch at their corners, so a letter like M can lose its diagonals and read as H. Check the preview, and try another word or grid if it matters.
  • "Nothing in this image counts as inside." Switch Inside is between Dark, Light and Opaque, or move the threshold slider.

Generation feels slow

Plain mazes are fast at any size. Measured on a desktop PC outside Unity (your machine and Unity's runtime will differ):

MazeTime
Square 64 by 64, or circular with 40 ringsunder 10 ms
Square 64 by 64 with 8 floorsabout 30 ms
Hex 13 by 13, a race of 4 with a key and gems, verifiedunder 10 ms
Square 30 by 30 with 6 keys, 8 gems, 4 switches and 4 portals0.5 to 1.4 s
Square 14 by 14, 4 rolling players with gems1.3 to 4.7 s

The costly part is solving, which grows with every key, gem and switch (each one multiplies the positions to search) and most of all with several rolling players, who are solved together. Every gimmick type is solved again after it is placed, up to 8 times. Generation runs on a background thread in the window and with the Async methods, so it never freezes the editor or your game, and it can be cancelled.

The demo ignores the keyboard or the mouse

The demo uses the Input System package. Set Project Settings > Player > Active Input Handling to Input System Package or Both. The hub and the HUD make an EventSystem with the Input System's UI module when the scene has none. If your scene already has an EventSystem, its input module has to match your input handling.

HDRP looks dark, or ignores my volumes

Out of the box HDRP uses physical light units, automatic exposure and sky lighting, which would make the demo dark and tinted. MazeDemo.HdrpLook (on by default) adds a global volume at priority 10 with a fixed exposure and a gradient sky, and sets the sun in lux, so the demo looks the same as on the other pipelines. If you want your own volumes and lights to take over, turn HdrpLook off.

Resetting the demo's progress

The demo saves each pack level's best moves in PlayerPrefs, under SimpleMaze.Demo.Best.<pack name>.<level>. Call MazeProgress.Clear(packName, levelCount) to forget a pack, or delete those keys. A pack's progress is filed under its pack name, so renaming a pack starts it fresh.

Seeds and versions

The same settings and seed always give the same maze within a version of Simple Maze. A future version that improves the generator may change what a seed produces. Saved assets store the maze itself, not just its seed, so your saved mazes and packs never change. Verified generation stores the seed that actually worked, such as level-7#3, so copying a maze's own seed always rebuilds that exact maze.

Console messages

  • "[Simple Maze] Documentation page not found": the documentation menu looks for these pages in a folder whose path contains SimpleMaze and Documentation. Keep the Documentation folder inside the Simple Maze folder.
  • "[Simple Maze] Generation failed": something went wrong on the generation thread. Please send the message with your settings and seed.

Still stuck

Email livingfailuregames@gmail.com with your Unity version and, for a maze-specific question, its seed and settings. Copy seed and Copy solution in the analysis pane make that easy, and a seed rebuilds the maze exactly.