-
Notifications
You must be signed in to change notification settings - Fork 0
Features & Settings
A complete reference of every feature, property, and UI control in FireMaze. Each section notes which sidebar panel it belongs to and includes exact defaults, ranges, and restrictions.
Maze Settings panel
Walls are rendered as thin box segments aligned along grid lines with customizable thickness. Ideal for classic dungeon layouts.
-
Wall Thickness —
wall_thickness— 0.01–10.0 (default 0.1) -
Double-Sided Thin Walls —
thin_wall_double_sided— When enabled, a single-sided custom wall tile is duplicated on both sides of the grid line to fake thickness. Disable when your custom wall tile already has built-in thickness. -
Clean Wall Corners —
clean_wall_corners— Extends thin wall and roof faces at intersections to close gaps and eliminate visible seams. UV coordinates are adjusted proportionally so textures remain perfectly stretched. Roof faces may overlap slightly at corners.
Walls are full tile-sized cubes centered on grid cells. The generated maze respects exact layout dimensions, and path cell centers are placed perfectly within the grid.
-
Instanced Pillars (Pillar Mode) —
cube_mode_pillar— Use whole meshes from your Wall Collection as single pillars/cubes rather than assembling them face-by-face. Roof tile generation is automatically suppressed. Clicking the top/roof area of these pillars in the interactive editor works seamlessly to toggle or cycle them.- Mesh alignment requirement: Meshes must be centered horizontally (local X=0, Y=0) with the bottom aligned at local Z=0. If the origin is at the mesh center (like default Blender cubes), it will sink halfway into the floor.
Optionally stack walls in tile-height increments for consistent UV mapping across segmented wall stacks.
-
Tiled Height —
wall_height_tiled— Toggle (default off) -
Tiles High —
wall_height_tiles— 1–100 (default 1) — Only visible when Tiled Height is on. -
Wall Height —
wall_height— 0.1–100.0 (default 1.0) — Used when Tiled Height is off.
Maze Settings panel
FireMaze supports two grid layouts, each with its own generation and mesh construction logic.
Standard width × depth cell layout. All algorithms, rooms, loops, and entrances/exits work as documented. Image masking is available.
-
Width —
width— 3–200 cells (default 10) -
Depth —
depth— 3–200 cells (default 10) -
Maze Shape —
maze_shape— Outer boundary shape for the maze:-
Rectangle— Standard rectangular boundary. -
Diamond— Diamond/rhombus silhouette. -
Triangle— Triangular silhouette. -
Hexagon— Hexagonal silhouette.
-
-
Shape Rotation —
shape_rotation— 0°, 90°, 180°, 270°. -
Smooth Shape Edges —
smooth_shape_edges— Toggle. Clips boundary tiles to the shape contour for a smoother outline.-
Boundary Method —
smooth_boundary_method:-
Filler Triangles— Generates extra triangular faces to fill boundary gaps. -
Clipped Tiles— Clips floor/roof tiles to the boundary contour.
-
-
Boundary Offset —
smooth_boundary_offset— 0.0–2.0 (default 0.15). Extends the shape boundary outward to clear stray corner fragments.
-
Boundary Method —
Maze generated in concentric rings with radially-divided sectors. Each ring's sector count increases outward for a natural circular look.
-
Rings —
polar_rings— 2–100 (default 5) -
Custom Tile Alignment —
polar_custom_alignment— How custom tiles are aligned to wedge-shaped polar cells:- Procedural Only — Uses procedurally generated curved meshes (wedges, circular arcs, radial walls). Custom tiles are ignored.
- Trapezoidal Scaling — Stretches custom tiles to fit the wedge-shaped cells (straight walls, segmented appearance).
- Polar Bending (Warp) — Dynamically bends/warps custom tile vertices along circular arcs for a smooth organic look. Resolves the inherent left-handed Jacobian reflection of polar coordinates by applying compensating negative scales to keep normals, geometry, and texture orientations correct. Subdivision cuts are automatically capped (max 2 for detailed meshes, max 4 for simple proxy tiles) to prevent vertex explosion.
Algorithm & Rooms panel
FireMaze supports 10 maze generation algorithms, each producing distinct corridor architectures. All algorithms work on rectangular grids; polar grids natively use DFS (others fall back to a random spanning tree / Kruskal-style equivalent).
| Algorithm | ID | Characteristics |
|---|---|---|
| Depth-First Search | dfs |
Recursive backtracker. Long winding corridors, perfect maze. |
| Kruskal's | kruskal |
Random edge merging. Short corridors, many dead-ends. |
| Eller's | eller |
Row-by-row generation. Memory-efficient. Distinct row structure. |
| Binary Tree | binary_tree |
Simple, fast. Bias toward north/east corridors. |
| Prim's | prims |
Randomized MST. Balanced, highly branching. |
| Hunt-and-Kill | hunt_and_kill |
Random walk + scan. Long winding corridors. |
| Sidewinder | sidewinder |
Row-by-row horizontal runs. Strong horizontal bias. |
| Wilson's | wilsons |
Loop-erased random walk. Unbiased uniform spanning tree. |
| Recursive Division | recursive_division |
Recursive subdivision with single doors. Nested chambers. |
| Growing Tree | growing_tree |
Hybrid frontier. Highly customizable via selection bias. |
All bias values range from 0.0 to 1.0 with a default of 0.5. Only the parameters relevant to the selected algorithm are shown in the UI.
| Parameter | Property | Default | Affects | Description |
|---|---|---|---|---|
| GT Selection Bias | selection_bias |
0.5 | Growing Tree | 0.0 = always newest cell (DFS style, long corridors). 1.0 = always random cell (Prim's style, branched clusters). |
| Corridor Straightness | straightness |
0.5 | DFS, Hunt-and-Kill | Probability of continuing in the same direction. Higher = longer, straighter corridors. |
| Radial Bias | radial_bias |
0.5 | Polar DFS | 0.0 = prefer tangential (concentric) movements, ring-like pathways. 1.0 = prefer radial (in/out) movements, spoke-like pathways. |
| Diagonal Bias | direction_bias |
0.5 | Binary Tree | 0.0 = always carve North (horizontal lanes). 1.0 = always carve East (vertical lanes). |
| Sidewinder East Bias | east_bias |
0.5 | Sidewinder | Higher = longer horizontal runs. Lower = more frequent vertical exits to the North. |
| Split Orientation Bias | orientation_bias |
0.5 | Recursive Division | 0.0 = bias vertical splits. 1.0 = bias horizontal splits. |
| Passage Location Bias | passage_bias |
0.5 | Recursive Division | 0.0 = push doors toward center of wall segment. 1.0 = push doors toward edges/corners. |
| Eller Merge Prob | eller_merge_prob |
0.5 | Eller's | Horizontal set merging rate. Higher = more horizontal connections within the same row. |
Algorithm & Rooms panel — Rectangular grids only
Pre-carve open rectangular clearings within the maze. Rooms auto-connect to the corridor network and are guaranteed to contain no stray pillars or internal walls in both Thin and Cube modes. Rooms respect the blocked mask — any placement overlapping a blocked cell is skipped, keeping image-masked layouts intact.
-
Enable Rooms —
rooms_enable— Toggle (default off) -
Room Count —
rooms_count— 1–50 (default 3) -
Min Room Size —
min_room_size— 2–20 cells (default 2) -
Max Room Size —
max_room_size— 2–20 cells (default 4)
Loops & Layout panel — Rectangular grids only
-
Loop Probability —
loop_probability— 0.0–1.0 (default 0.0). Randomly removes additional walls to create alternative paths and loops. 0.0 = perfect maze (exactly one path between any two points). Higher values create more circular corridors and shortcuts. -
Isolated Wall Prob —
isolated_wall_prob— 0.0–1.0 (default 0.0). Places standalone wall columns or pillars in floor regions as obstacles.
Entrances & Exits panel — Rectangular grids only
-
Find Center (
center) — Entrance on an edge leading to a goal cell in the center of the maze. -
Find Exit (
exit) — Entrance on one side, exit on the opposite side.
-
Entrance Side —
entrance_side— Random/Any, North (+Y), South (-Y), East (+X), West (-X) -
Exit Side —
exit_side— Random/Any, North (+Y), South (-Y), East (+X), West (-X) -
Entrances —
num_entrances— 1–10 (default 1) -
Exits —
num_exits— 1–10 (default 1) -
Emergency Exits —
emergency_exits— Toggle (default off). Center mode only. Adds extra random openings on outer edges that lead out of the maze, providing multiple escape points.
Generation & Editing section — FireMaze root panel
Paint, modify, and customize the maze layout in real time directly from the 3D viewport.
- Click Interactive Edit in the sidebar.
- The viewport status bar displays editing shortcuts.
- Left-click on any cell or wall face to toggle it on/off.
- Shift+left-click to cycle that face's mesh from its custom collection.
- Press
EscorEnter(or click Exit Edit Mode) to return to normal interaction.
The editor monitors workspace and window state — switching to another workspace tab or clicking in another viewport region automatically terminates edit mode to prevent UI lockout. Clicks on the sidebar (N-panel) are ignored so you can adjust settings without leaving edit mode.
When floors > 1, a tool selector appears:
| Tool | Left-click | Shift+left-click |
|---|---|---|
Toggle Walls (wall) |
Add/remove wall cell or boundary | Cycle custom collection asset on that face |
Toggle Stairs (stair) |
Place stair/ramp connecting current floor to the level above (or remove existing) | Cycle stair orientation (N→E→S→W for rect; CCW→Out→CW→In for polar) |
-
Floor Level —
edit_floor_level— 0–19. Selects which floor the editor targets. -
Edit Roof —
edit_roof— Toggle (polar thin mode only). Edit roof faces instead of walls.
- A hidden helper mesh (
_FireMaze_Edit_Helper) is temporarily generated for precise raycasting, making face classification 100% mathematically exact even on complex custom meshes. - Heavy post-processing (lightmap UV, vertex painting, planar dissolve, prop spawning, colliders) is automatically bypassed during editing for instant response. Exiting edit mode triggers a single full rebuild with all post-processing applied.
- Changes are tracked via dirty cells — only the clicked cell and its Moore neighborhood are rebuilt incrementally.
Guide Path panel
Generate and display the BFS-calculated shortest route from the entrance to the exit(s) or center.
-
Generate Guide —
generate_guide— Toggle (default off) -
Guide Type —
guide_type:-
Curve— A simple NURBS curve object. -
Tube (Mesh)— A solid 3D tube mesh. -
Ribbon— A flat ribbon path.
-
-
Guide Width —
guide_width— 0.01–10.0 (default 0.1). Thickness of the tube/ribbon. -
Height Offset —
guide_height_offset— -10.0–10.0 (default 0.1). Vertical position above the floor. -
Wave Amplitude —
guide_wave_amplitude— 0.0–5.0 (default 0.0). Sine wave amplitude for floating animation. -
Wave Frequency —
guide_wave_frequency— 0.1–20.0 (default 1.0). Sine wave frequency.
The guide path automatically loads a bright neon-green glowing emissive material (FireMaze_Guide) to visually stand out in Eevee or Cycles.
Custom Meshes & Collections panel
Replace standard procedural geometry with your own meshes or randomized collections.
-
Tiles Centered —
tiles_centered— Toggle (default on). Enable if your custom tiles have their origin at the center (like Blender primitives). Disable if tiles have their bottom-left corner at the origin.
| Property | Label | Type | Description |
|---|---|---|---|
custom_floor_mesh |
Floor Mesh | Mesh | Single custom mesh for all floor tiles |
custom_floor_collection |
Floor Collection | Collection | Randomly distribute meshes from this collection as floor tiles |
custom_roof_mesh |
Roof Mesh | Mesh | Single custom mesh for all roof tiles |
custom_roof_collection |
Roof Collection | Collection | Randomly distribute meshes from this collection as roof tiles |
Note: When floor_thickness > 0, custom floors/roofs do not scale with thickness — they are placed as-is at the top surface.
| Property | Label | Type | Description |
|---|---|---|---|
custom_wall_mesh |
Wall Mesh | Mesh | Single custom mesh for all wall segments |
custom_wall_collection |
Wall Collection | Collection | Randomly distribute meshes from this collection as walls |
| Property | Label | Type | Description |
|---|---|---|---|
custom_stair_mesh |
Stair Mesh | Object | Custom object to instantiate at stair cells |
custom_ramp_mesh |
Ramp Mesh | Object | Custom object to instantiate at ramp cells |
For larger footprints (1×2, 2×2), only the starting candidate cell receives the custom mesh; the other footprint cells are carved open on both floors (no floor or roof tiles) to serve as landing or open vertical shaft.
In Interactive Edit Mode, Shift+left-clicking a face cycles its mesh index from the respective collection:
- Cube Mode — Raycast hit normals detect the clicked direction, allowing independent cycling of North, South, East, and West wall faces (when not in Instanced Pillar Mode), plus floor and roof tiles.
- Thin Wall Mode — Distance-to-edge calculations precisely target the clicked thin wall segment, floor, or roof. Shared walls between adjacent cells are automatically synchronized.
| Element | X/Y (horizontal) | Z (vertical) |
|---|---|---|
| Pillars / Walls | Centered (local X=0, Y=0) | Bottom at local Z=0 |
| Floors | Centered (local X=0, Y=0) | Bottom face at local Z=0 |
| Roofs | Centered (local X=0, Y=0) | Top surface at local Z=0 |
Detailed Transforms panel
Add variety and organic offsets to standard or custom tiles using local matrix transforms applied relative to each individual tile segment's local center.
| Element | Translate (XYZ) | Rotate (Euler degrees) | Scale (XYZ) |
|---|---|---|---|
| Wall Offsets |
wall_translate (0,0,0) |
wall_rotate (0,0,0) |
wall_scale (1,1,1) |
| Floor Offsets |
floor_translate (0,0,0) |
floor_rotate (0,0,0) |
floor_scale (1,1,1) |
| Roof Offsets |
roof_translate (0,0,0) |
roof_rotate (0,0,0) |
roof_scale (1,1,1) |
Translation uses TRANSLATION subtype (LENGTH unit), rotation uses EULER subtype (ROTATION unit).
Session & Image Management panel — Rectangular grids only
Use a black-and-white image to define the walkable shape of the maze. White pixels = walkable (path), black pixels = blocked (wall).
- Load Mask from Disk — Imports a PNG, JPG, BMP, or TGA file from disk as the mask image.
-
Mask Image —
mask_image— Select an existing Blender Image datablock. -
Invert Mask Colors —
mask_invert— Toggle. Swap interpretation (black = walkable, white = blocked).
The mask image is sampled at each cell's position, making it easy to create mazes shaped like logos, text, or custom silhouettes. Masking is disabled when floors > 1.
Post-Processing panel
Procedurally paint vertex colors on maze meshes for shading, texturing, or game engine blending.
-
Enable Vertex Painting —
vertex_paint_enable— Toggle (default off) -
Paint Intensity —
vertex_paint_intensity— 0.0–1.0 (default 1.0). Controls opacity/strength of the effect.
| Mode | ID | Description |
|---|---|---|
| Ambient Occlusion | ao |
Procedural darkening in corners, seams, and near floor/roof boundaries for a natural shadowed look. |
| Texture Blend Weights | blend |
RGBA channels encode material blends: R=Moss (near floor), G=Cracks (in corners), B=Wetness (on flat floors), A=Soot (in dead-ends). |
| Path Highlight | path |
Greens the floor tiles along the shortest path to the exit/center. |
| Distance Gradient | distance |
Black-to-white gradient mapped by BFS distance from the entrance. |
Prop & Decor Spawner panel — Experimental
Automatically place decorative objects on wall faces, dead-ends, and entrances/exits. Spawned props are grouped under a scoped sub-collection (FireMaze_Props_{parent_name}), linked as a child of the maze collection, and tagged with a fire_maze_data custom property for reliable cleanup.
-
Torch Object —
prop_torch_mesh— Pointer to any Blender Object (mesh, light, etc.) -
Torch Density —
prop_torch_density— 0.0–1.0 (default 0.2). Probability of spawning on any valid wall face. - Torches orient toward the open space and are placed at 60% of wall height.
-
Chest Object —
prop_chest_mesh— Pointer to any Blender Object. -
Chest Density —
prop_chest_density— 0.0–1.0 (default 0.5). Probability of spawning in any dead-end cell. - Chests orient toward the only open direction of the dead-end.
-
Door Object —
prop_door_mesh— Pointer to any Blender Object. - Doors spawn at entrance and exit openings on the boundary.
Post-Processing panel
-
Single Wall Object —
single_wall_object— Toggle (default on). Merges all wall and cap faces into a singleFireMaze_Wallsobject. -
Merge Objects —
merge_objects— Toggle (default off). Combines floors, walls, roofs, and caps into oneFireMaze_Mergedmesh.
-
Remove Doubles —
remove_doubles— Toggle (default off). Final vertex weld to merge touching corners and stacked tiled wall segments. -
Optimize Geometry (Dissolve Planar) —
optimize_coplanar— Toggle (default off). Simplifies mesh by dissolving coplanar faces. Reduces poly count but may stretch seamless tiled textures.
-
Generate Lightmap UVs —
generate_lightmap— Toggle (default off). Generates a second UV map named "Lightmap" on all final visual mesh objects.-
Method —
lightmap_method:-
Smart UV Project— Groups adjacent/co-planar faces into contiguous UV islands (reduces seam-bleeding in game engines). -
Lightmap Pack— Projects and packs each face individually (zero distortion, maximum packing density, but splits every face).
-
-
Method —
(See Vertex Painting section above.)
-
Generate Colliders —
generate_colliders— Toggle (default off). Generates simple flat-faced helper meshes (FireMaze_Floor_Collider,FireMaze_Walls_Collider,FireMaze_Roof_Collider) matching the maze layout. Hidden in renders by default.- Roof colliders are generated even when Instanced Pillars mode is enabled.
-
Merge Colliders —
merge_colliders— Combines all active colliders into a singleFireMaze_Collidermesh. -
Optimize Colliders —
optimize_colliders_coplanar— Applies planar dissolve to collider meshes to reduce polygon count.
Maze Settings panel
Configure vertical floor transitions for multi-floor mazes.
-
Floors —
floors— 1–20 (default 1). Number of vertical levels. -
Floor Thickness —
floor_thickness— 0.0–10.0 (default 0.0). Thickness of the floor slab between levels. Adds visual depth with physical box geometry.
Shown when floors > 1.
-
Stairs Per Level —
stair_count— 1–50 (default 1). Number of staircases per floor transition. -
Stair Style —
stair_style:-
Staircase— Standard stepped staircase geometry. -
Ramp— Smooth sloped ramp geometry.
-
-
Stair Footprint —
stair_footprint— Rectangular grids only:-
1x1— Single-cell spiral staircase/ramp. -
1x2— Two-cell straight staircase. -
2x2— Two-by-two U-turn staircase with landing. - Polar grids only support
1x1footprints.
-
-
Stair Direction —
stair_direction:- Rectangular: North (N), East (E), South (S), West (W).
- Polar: CCW (N), Outward (E), CW (S), Inward (W).
Assign custom Blender Object pointers (meshes or other object types) to instantiate at stair/ramp cells instead of procedural geometry:
-
Staircase Object —
custom_stair_mesh(Object pointer) -
Ramp Object —
custom_ramp_mesh(Object pointer)
All properties are stored on context.scene.fire_maze as a Blender PointerProperty.
| UI Panel | Properties |
|---|---|
| FireMaze (root) |
grid_type, maze_shape, shape_rotation, smooth_shape_edges, smooth_boundary_method, smooth_boundary_offset, width, depth, polar_rings, polar_custom_alignment, wall_height_tiled, wall_height_tiles, wall_height, wall_mode, wall_thickness, thin_wall_double_sided, clean_wall_corners, tile_size, floors, floor_thickness, stair_footprint, stair_style, stair_direction, stair_count, seed, edit_floor_level, edit_roof, edit_tool, is_editing
|
| Algorithm & Rooms |
algorithm, selection_bias, straightness, radial_bias, direction_bias, east_bias, orientation_bias, passage_bias, eller_merge_prob, rooms_enable, rooms_count, min_room_size, max_room_size
|
| Session & Image Management |
mask_image, mask_invert
|
| Entrances & Exits |
mode, entrance_side, exit_side, num_entrances, num_exits, emergency_exits
|
| Loops & Layout |
loop_probability, isolated_wall_prob
|
| Guide Path |
generate_guide, guide_type, guide_width, guide_height_offset, guide_wave_amplitude, guide_wave_frequency
|
| Custom Meshes & Collections |
tiles_centered, custom_floor_mesh, custom_floor_collection, custom_roof_mesh, custom_roof_collection, custom_stair_mesh, custom_ramp_mesh, custom_wall_mesh, custom_wall_collection, cube_mode_pillar
|
| Detailed Transforms |
wall_translate, wall_rotate, wall_scale, floor_translate, floor_rotate, floor_scale, roof_translate, roof_rotate, roof_scale
|
| Post-Processing |
single_wall_object, merge_objects, remove_doubles, generate_lightmap, lightmap_method, optimize_coplanar, vertex_paint_enable, vertex_paint_mode, vertex_paint_intensity, generate_colliders, merge_colliders, optimize_colliders_coplanar
|
| Prop & Decor Spawner |
prop_torch_mesh, prop_torch_density, prop_chest_mesh, prop_chest_density, prop_door_mesh
|