Skip to content

Setup Guide — Illusory Wall

An illusory wall looks exactly like a solid wall but the party can walk through it. What makes it passable is a single flag on its EdgeBlockerMarkerIs Passable. Everything else (the dissolve animation, the trigger logic, whether it reveals at all) is optional layered on top.


How the grid sees it

Every wall in Dungeon Crawler Framework is registered as an EdgeBlocker in the grid. Whether a wall is physically passable is determined entirely by Is Passable on EdgeBlockerMarker. Visibility — whether the wall mesh is showing — is controlled separately by WallCore and the behaviours on top of it. A wall can look solid but be passable, or look invisible but block movement.

Dungeon Generator

Secret walls are placed from the Secret Wall Library panel in the Dungeon Generator. After placing, run Generate Unique IDs (all walls) so each wall gets a unique ID before JSON export.


Core components

EdgeBlockerMarker

Registers the wall with the grid. Required on every wall.

Field Value for illusory walls
Blocker Id Unique ID, e.g. wall_secret_01
Is Passable ✅ — must be enabled for the party to walk through
Is Open Leave disabled

WallCore

The central controller for walls that change their appearance. Manages the reveal/restore pipeline and drives the mesh and collider. Use this for walls driven by behaviour components (proximity, timed, ambush, etc.).

Field Description
Wall Mesh The wall's mesh child.
Wall Collider Physical collider on the root. Leave empty if there is no collider.
Collides When Hidden Keep disabled — illusory walls should not block movement even when visible.
Reveal Duration Seconds to match the dissolve animation length. Set to 0 for an instant pop.
Restore Duration Seconds for the restore animation.
Starts Revealed Enable if the wall should start invisible (useful for re-appearing walls).

TriggerIllusoryWall

The TriggerTarget variant of wall control. Use this when a TriggerSource (lever, button, plate, logic gate) drives the reveal. Receives OnTriggered / OnReleased and plays the reveal/restore animations accordingly.

Field Description
Blocker Id Must match EdgeBlockerMarker.blockerId.
Wall Mesh The wall's mesh child.
Wall Animator Animator from the mesh child.
Reveal / Restore Anim Trigger Animator trigger names.
Dissolve Delay Seconds after the reveal trigger before the mesh is hidden. Match to animation length.

Behaviour components (used with WallCore)

Add these alongside WallCore to define when the wall reveals itself. Multiple behaviours can coexist on the same wall.

Behaviour Reveals when…
ProximityRevealBehaviour Party steps onto the wall's cell.
DelayedProximityBehaviour Party steps onto the cell, but after a configurable delay.
TimedRevealBehaviour A fixed time after scene load.
AmbushRevealBehaviour A connected enemy spawner activates — the enemy bursts through.
CounterRevealBehaviour The party has passed through or entered the cell a set number of times.
ProjectileRevealBehaviour A projectile hits the wall.
PhaseWallBehaviour Party walks through without any visual change — the wall stays solid-looking.
OneWayPassageBehaviour Passable from one direction only.
BiomeWallModifier Changes the wall's visual to match a different biome. Not a reveal — purely cosmetic.

Wall Animator setup

If you want a dissolve animation, the mesh child's Animator Controller needs these states and triggers:

States
  Idle_Hidden     ← default (wall looks solid)
  Revealing       ← dissolve playing
  Idle_Revealed   ← wall invisible / gone
  Restoring       ← restore playing (only if wall can restore)

Triggers
  Reveal
  Restore

Transitions: Idle_Hidden → Revealing on trigger Reveal (no Exit Time). Revealing → Idle_Revealed on Exit Time. Same pattern for Restore.

No animator needed

Skip the Animator entirely if you want the wall to simply disappear. Set Reveal Duration to 0 on WallCore and the mesh hides immediately on reveal.


Map behaviour

Secret floor cells (marked as Secret in the Dungeon Generator) never appear on the dungeon map until explored. Illusory walls themselves don't affect the map — only the floor cell type on the other side does. A room behind a secret wall with normal floor tiles appears on the map as soon as the party enters. Mark those floor tiles as Secret to keep the room hidden until explored.


Component summary

Goal Components on root
Walk through, no visual EdgeBlockerMarker (Is Passable ✅)
Reveals on approach EdgeBlockerMarker, WallCore, ProximityRevealBehaviour
Reveals on trigger EdgeBlockerMarker, TriggerIllusoryWall
Reveals on timer EdgeBlockerMarker, WallCore, TimedRevealBehaviour
Enemy bursts through EdgeBlockerMarker, WallCore, AmbushRevealBehaviour
One-way passage EdgeBlockerMarker, WallCore, OneWayPassageBehaviour

Dungeon Crawler Framework — Mantis3de