All How To guides
How To · Foundry v14

Foundry VTT Levels Tutorial: How to Build Multi-Story Scenes in v14

Baileywiki tutorial video — July 11, 2026

This Foundry VTT Levels tutorial walks you through building a multi-story building using the core Scene Levels feature introduced in Foundry Virtual Tabletop v14. You'll learn how to set up elevation bands, configure regions and stairs, manage tile occlusion, tag lights, and integrate the Better Roofs module — with a cross-section diagram and an interactive step-by-step checklist.

Building cross-section diagram

ELEVATION∞ ft20 ft10 ft0 ft−10 ftLevel 3 — Roof20 – ∞ ftsees Levels 1, 2, 3Level 210 – 20 ftsees Levels 1, 2, 3Level 1 — Ground0 – 10 ftsees Levels 1, 2, 3Level 0 — Basement−10 – 0 ftsees no other levelSTAIR ▲STAIR ▲STAIR ▲ROOF TILE — roof / ceiling · Reveals Fog of War: ✓TILE — floor / ceilingTILE — floor / ceilingTILE — floor / ceilingLIGHTREGION — Level 3 (Roof)Levels: Levels 1, 2, 3Elevation: Bottom 20, Top ∞Top Inclusive: YesBehavior: Define SurfaceLIGHT — on Level 2Levels: blank — leave untaggedElevation: set to its band, e.g. 10Floor + roof tiles restrict lightSpills naturally through openingsTILE — Level 2 floor / ceilingLevels: 1, 2, 3 — all above-ground levelsElevation: 10Occlusion: Fade, SurfaceRestricts Lights + WeatherSTAIR REGION — Level 1 → 2Levels: Level 1, 2 (both)Elevation: Bottom 0, Top 10 · Top Incl: YesBehavior: Change Level · Walk / AllSits in the lower band; Top Incl. hands off.
Region — the level volume
Tile — floor / ceiling image
Roof tile — reveals fog
Stair Region — level-to-level link
Light — tagged to its level(s)

Orientation — how Foundry treats levels & space

A multi-story building in Foundry is an illusion assembled from a few cooperating pieces. Holding this model in mind makes every setting below make sense.

1. Elevation is the real coordinate. Every token, tile, light and region sits at an elevation. A "level" is just a named elevation band — a Bottom and a Top. "Level 3 — Roof" literally means the slice of space from 20 ft upward; there is no separate roof map.

2. "Top Inclusive" resolves the seam. Stacked bands share a boundary number — 10 ft touches both the 0–10 and 10–20 bands. Top Inclusive hands that top value to this band, so anything resting on a boundary has one unambiguous home. This is what lets a Stair Region hand a token off at the top of its band: the stair sits in the lower level with Top Inclusive = Yes, so when the token reaches the top boundary the stair "owns" that elevation and the Change Level behavior can move the token up.

3. Regions are volumes with a job — not the floor itself. A Region is a shape across an elevation band; on its own it does nothing. Its behaviors are the point: Define Surface says "there is a solid floor / ceiling in this volume" (what tokens stand on, and what light, sight and sound react to); Change Level says "a token entering here is moved to the connected level" (your stairs and ladders). A Stair Region sits within its lower level's band and is tagged with both levels, so it is visible from either floor.

4. Tiles are artwork plus physics — not the level definition. A tile is just an image at an elevation. Its Overhead settings — Occlusion, Restrict Lights / Weather, and (with Better Roofs) Reveal Fog of War — are what make it behave like a roof or a floor. Swapping a tile's image never changes the level structure; the regions do that.

5. Lights are left untagged — floors do the blocking. Current best practice reverses the old advice: leave a light's Levels field blank and set its elevation to the floor it belongs to. The floor tile above and the floor tile below (both with Restrict Lights on) do the blocking. This lets light spill naturally between floors — down a stairwell, through a floor opening — instead of stopping at a hard, unnatural line at the floor boundary. Tagging a light pins it to one floor and produces that artificial edge.

6. A surface only blocks sight on the levels it is tagged to. A Define Surface region is invisible to any level that isn't in its Levels list, so a floor tagged only to its own level lets tokens above and below see straight through it. Tag every surface to its own level plus every level that can see that level — set the visibility once, and the surfaces enforce it in both directions. Sealed basements get this for free, because a sealed basement sees nothing.

With Better LevelsBetter Levels does this tagging for you: any surface it creates or fixes is automatically assigned to its own level plus every level that can see it, and its Audit flags any surface that isn't. This is the single most common cause of "I can see through the floor," and it's tedious to maintain by hand as you add levels.

7. Levels and elevation are coordinates, not just filters. For a token on a given level to perceive a placeable, both must line up: the placeable's level tags must include the token's level (or be blank, meaning all levels), and only then do elevation and occlusion decide the rest.

8. New placeables inherit the level you are standing on. The moment you drop a tile, light or region, Foundry stamps it with the level that is currently active — and only that level. Anything meant to be seen across floors (floor/ceiling tiles, holes, balconies) needs its level tag adjusted after placement — cleared (blank = all levels) or extended to every level that should see it.

Coming from the old Levels module? The old module hung level logic on tiles. Core Foundry moves that logic onto Regions and their behaviors:

  • Stairs and ladders are no longer a special tool — they are a Region with a Change Level behavior, sitting in the lower level's band and tagged with both levels.
  • A floor is a Region with Define Surface, not a tagged tile. Tiles are now just art and occlusion.
  • Holes and open shafts are cut with the Region's draw-hole tool — a sub-shape that subtracts from the region.
  • Lights are now left untagged — the old module's advice to tag every light is superseded. Leave the Levels field blank and set the light's elevation to the floor it belongs to; let the floor and roof tiles above and below (with Restrict Lights on) do the blocking. This way light spills naturally through stairwells and floor openings instead of stopping at a hard, artificial line.
  • Every placeable auto-tags to the active level. Widen or clear that tag for anything meant to span floors.

If you catch yourself trying to make a tile "be" the floor, that's the old reflex — place a region instead.

Still recommended: the Better Roofs module. Core Levels handles the structure, but Better Roofs adds two tile capabilities core Foundry does not provide on its own:

  • Reveal through Fog of War. The Reveals Fog of War option on the Roof tile comes from Better Roofs — needed so the roof stays visible while a token is standing outside the building looking at it.
  • OcclusionID & Occlusion Source. A shared ID across tiles so a roof or floor built from more than one tile fades in and out as a single piece.

Build checklist

0 / 27 done

For each level, place the Tile first, then its Surface Region, then its Stair Region. Every placeable you drop is auto-tagged to the level you are currently on — watch for the steps that tell you to clear or widen that tag.

1

Define the four scene levels

In the scene's Levels configuration, create each level as a Bottom/Top elevation band, then set its visibility list — the other levels visible from that one.

With Better LevelsGenerate Levels builds the whole stack in one dialog: say how many floors, how many basements, whether to add a roof, and the floor height. It names each band by its elevation range and wires the visibility lists automatically (above-ground levels see each other, basements sealed), so you skip creating and configuring each band by hand.

With Better LevelsThe Level Manager shows a visibility grid: every level against every other, with a click-to-toggle eye for each pair, so you can set and read the whole visibility picture at a glance instead of opening each level's config in turn. It supports one-way visibility too.

2

Level 1 — Ground

0 – 10 ft · visible to 1, 2, 3

Tile (placed first)
Surface Region
Stair Region
3

Level 2

10 – 20 ft · visible to 1, 2, 3

Tile (placed first)
Surface Region
Stair Region
4

Level 3 — Roof

20 – ∞ ft · visible to 1, 2, 3

Tile (placed first)
Surface Region
Stair Region

No Stair Region — nothing above the roof to climb to.

With Better LevelsThe tile HUD gains Floor / Roof / Basement / Balcony buttons. One click applies all the Overhead settings described here, tags the tile to the right levels, and generates its Define Surface region traced to the tile's actual non-transparent footprint (not a bounding rectangle). Select several tiles and "Mark selected tiles as Floor" does a whole storey at once. Important: marking a tile is also what puts it under continuous supervision — from then on the Audit checks and can repair its surface, occlusion, light/weather blocking and fog reveal. For genuine decoration there's an ignore toggle — on the tile HUD and in the Fix dialog, and it works for regions and lights too — which drops that entity out of the Audit until you toggle it back. So each tile gets one of two answers: tag it to have it checked forever, or ignore it to say "this is just art." Anything you haven't answered still gets flagged, because untagged usually means forgotten.

5

Level 0 — Basement

−10 – 0 ft · visible to: none

Tile (placed first)
Surface Region
Stair Region

With Better LevelsCreate Stairs mode: turn it on and any region you draw becomes a Change Level stair to the level above, with the band and Top Inclusive already set correctly. The Audit also catches the classic one-way stair (a stair that reaches the upper floor but has Top Inclusive off, so it works going up but not down).

6

Test the setup

Drop in a token and walk it through the building.

Checklist progress is not saved — reloading clears the ticks.

Notes

  • Work one level at a time. Each step is a complete floor — Tile, then Surface Region, then Stair Region.
  • The Roof tile is the only tile that reveals Fog of War — an option supplied by Better Roofs.
  • Multi-tile roofs and floors — give every tile in the surface the same Better Roofs OcclusionID so they occlude together as one piece.
  • Stair Regions sit in the lower level's band. The Elevation matches that band (e.g. a Level 1↔2 stair is Bottom 0, Top 10) with Top Inclusive = Yes, and the Levels tag holds both levels — so the stair is visible from either floor and the Change Level behavior hands the token off at the top boundary. Movement is Walk / All.
  • Above-ground tiles are tagged to all above-ground levels (1, 2, 3) — the Roof, Level 2 and Ground tiles all get the same "1, 2, 3" tag; the Basement tile is placed on Level 0. A blank Levels field is only safe in a scene with no basement, because blank means "all levels" and leaks the upper floors into the sealed basement. A freshly dropped tile auto-tags to only your current level — widen it by hand.
  • The Basement's visibility list is empty — it stays sealed off both ways.
  • Openings must be cut on both levels. If you cut a hole in a floor surface — a stairwell, a balcony opening, a trapdoor — the same opening has to exist in the surface of the level directly below it. Otherwise the lower floor is still solid where the gap should be, and two tokens who ought to see each other through the opening can't. Cut the hole once per surface, all the way down.

    With Better Levelsthe Audit detects an opening that exists in one floor's surface but not the surface below it, and copies it down for you.

Placing other entities

Once the levels, tiles, regions and stairs above are placed, the remaining entities are straightforward:

■ Walls — switch to the level you are working on so it is the active level, then draw its walls. Each wall automatically inherits the active level, so there is no manual assignment.

■ Lights — leave the Levels field blankand set the light's elevation to the floor it belongs to. Make sure the floor tile above and the floor tile below have Restrict Lights enabled — those tiles do the blocking. This lets light spill naturally through stairwells and floor openings instead of stopping at a hard, unnatural line at the floor boundary; tagging a light pins it to one floor and produces that artificial edge.

With Better Levelswhen you drop a light while a level is active, Better Levels sets its elevation to that level's floor automatically and leaves it untagged, which is exactly the policy described above.

■ Tiles (ladders, props, decoration) — when you drop a decoration tile it is auto-tagged to the level you are on, which is usually what you want; only widen the Levels tag if the decoration should be visible from more than one floor (a tile over a hole or balcony is one of those cases). Anything acting as a floor or ceiling, however, should be tagged to all above-ground levels (1, 2, 3) — not left blank — so it doesn't leak into the sealed basement.

Frequently asked questions

What are Scene Levels in Foundry VTT v14?

Scene Levels are a core Foundry VTT v14 feature that lets you create multi-story buildings by dividing a scene into named elevation bands. Each level is a Bottom-to-Top elevation range with its own visibility list, so tokens on one floor only see the placeables tagged for that level.

Do I need the old Levels module in Foundry v14?

No. The functionality from the old third-party Levels module has been merged into core Foundry VTT as Scene Levels. The old module is retired. You only need core v14 plus the Better Roofs module for fog-of-war reveal and OcclusionID features.

How do stairs work in Foundry VTT Scene Levels?

Stairs are created as a Region with the Change Level behavior. The stair region sits within the lower level's band (its Elevation matches that band — e.g. Bottom 0, Top 10 for a Level 1↔2 stair) with Top Inclusive = Yesso it owns the top boundary and can hand the token off. Its Levels tag lists both connected levels so it is visible from either floor. When a token enters, Foundry moves it to the connected level.

What is the difference between a Region and a Tile in Scene Levels?

A Region is a volume with a behavior like Define Surface or Change Level — it is what makes a floor solid and what moves tokens between levels. A Tile is just artwork at an elevation; its Overhead settings (Occlusion, Restrict Lights, Reveal Fog of War) control how it looks, but the level structure is defined by Regions.

Why can tokens see through my floors between levels?

The usual cause is a Define Surface region tagged only to its own level. A surface only blocks sight on the levels it is assigned to, so a floor tagged to just its own level is invisible — and therefore transparent — to the levels above and below it. Tag each surface to its own level plus every level that can see that level. The second most common cause is an opening cut in one floor's surface but not in the surface below it.

Working faster — and the overlap problem

The tedious part of building this way isn't the concepts, it's the bookkeeping — and it gets worse as the building grows. Baileywiki Better Levels' Audit checks 32 rules covering essentially every mistake this guide warns about, sorts them into safe / settings / destructive categories, and can fix them in one click. Every rule explains the concept behind it on hover, so it doubles as a way to learn the system. Individual tiles, regions and lights can also be excluded from the Audit entirely with an ignore toggle, so deliberate decoration stops being reported without switching a whole rule off.

The overlap problem. Once a building has several floors, the tiles and surface regions from every level stack on top of each other in the editor, and clicking the one you want becomes genuinely painful — you keep grabbing the roof when you want the floor, or a region from two storeys up. Build Mode solves this with one toggle: it hides the tiles and the surface regions belonging to levels above the one you're working on, so the level you're editing is the one you can actually select. Toggle it off and everything comes back. This is purely an editing aid — it never changes what your players see.

Baileywiki Better Levels

Keep building