You can pick from these Layouts:
Tower
Given a height, the Plugin builds something tower-likely for you. The Player can move upwards and downwards.
$metaMaze.tower(height)
.withExit("top")
.withExit("bottom")
.apply()
.enterAt("bottom");
![](https://aerosys.blog/wp-content/uploads/2021/03/Meta-Maze-tower-1.png)
Grid
Given a width and a height, the grid builds connections to every adjacent cell.
$metaMaze.grid(width, height)
.withExit("top")
.withExit("bottom")
.apply()
.enterAt("bottom");
![](https://aerosys.blog/wp-content/uploads/2021/03/Meta-Maze-grid-3.png)
Maze
The Plugin builds a perfect Maze as layout, having only one solution to solve it. Be aware, this option will raise the dungeon’s complexity a lot!
$metaMaze.maze(width, height)
.withExit("top")
.withExit("bottom")
.apply()
.enterAt("bottom");
![](https://aerosys.blog/wp-content/uploads/2021/03/Meta-Maze-perfectMaze.png)
Imperfect Maze
Since the perfect Maze often is too hard to solve, you should prefer an imperfect Maze, that usually has more than just one solution.
$metaMaze.imperfectMaze
(width, height, 1, 0.3)
.withExit("top")
.withExit("bottom")
.apply()
.enterAt("bottom");
The number 1 stands for the variable cutOffDeadEnds and 0.3 for the mergeBackProbability, as described here.
![](https://aerosys.blog/wp-content/uploads/2021/03/Meta-Maze-imperfectMaze.png)
Exits
As you have probably already noticed, you are free to choose other exits. The following rules are:
- You can set only one exit per direction
- You must set at least one exit (which makes sense, I think)