Register

Indy Walls

An Add-on Module for Foundry Virtual Tabletop

Author: Pingu2 Project: Source Foundry Versions 13 to 14 (Verified 14) Last Updated 13 hours, 27 minutes ago

Indy Walls is a Foundry VTT module with wall-editing improvements, including curves/circular/rectangular/polyline wall drawing and editing, borrowing ideas from DragonFlagon Curvy Walls. It also has wall cleanup function that runs on a scene with 1 click and a function to convert regular foundry walls to Indy Walls for further editing.

Compatibility:
Required dependencies:
Optional dependencies:

bezierellipse

polylinerectangle

Features

Quick Wall Type Changes

When enabled in module settings, Ctrl-clicking the existing Wall Controls type buttons updates the currently selected walls to that type. Normal clicks keep Foundry's standard tool-selection behavior.

Supported type buttons:

This setting is client-side and is enabled by default. You can also change by hotkeys (see below), which is disabled by default.

 

Wall Length Labels

Optional client-side settings can show wall lengths while drawing or editing wall previews, and when hovering existing walls in Wall Controls. Lengths use the scene grid distance and units, and work with both Foundry walls and wall segments created by Indy Walls.

Indy Shape Editing

Indy Walls adds shape-based wall tools to Foundry's Wall Controls. Generated wall segments store metadata so the shape can be reopened later.

Common editing controls:

Generated segments use the last selected wall type from Foundry's wall type buttons unless a segment has an override. While editing a shape, hover a segment and press:

When enabled in module settings, those same wall type hotkeys can also update a hovered Foundry wall while Wall Controls are active. This setting is disabled by default.

Convert to Indy Walls

The Wall Controls include a Convert to Indy Walls button for GMs. It scans plain Foundry walls in the current scene and previews the proposed Indy shapes before changing wall documents. Use the inline Save button to apply the conversion or Cancel to discard it.

Detected axis-aligned rectangles become Indy rectangles, near-elliptical loops become Indy ellipses, and remaining connected paths become Indy polylines with arc or Bezier curve metadata where the fit is close enough.

On Foundry v14, conversion only joins walls into the same Indy shape when those walls share the same levels list. Original wall data, including v14 level assignment, is preserved on converted segments.

The inline tolerance sliders and matching stored settings control how aggressively rectangle, ellipse, arc, and Bezier fits are accepted. The default value of 1 keeps the automatic scene-size-derived tolerance; lower values are stricter, and higher values, up to 10, allow looser fits.

Adjacent rectangle conversion is enabled by default. When enabled, conversion can detect multiple rectangles that share full or partial sides.

Clean Up Walls

The Wall Controls include a Clean Up Walls button for GMs. It

Standalone snapping to nearby grid lines or map edges is available as a module setting and is disabled by default. On Foundry v14, cleanup respects wall level lists by default and only snaps or joins endpoints across matching levels; this can be disabled in module settings.

For Indy shapes, saved endpoint or vertex metadata is updated where possible so the editor reopens on the cleaned points, but curve handles are left unchanged; intersection splitting is limited to non-door plain walls so Indy shape metadata and door state are not invalidated.

Preview Styling

Module settings include client-side controls for the editor preview wall color and width, per-type segment preview colors, regular vertex color and size, active vertex color, endpoint color and size, Bezier handle color and size, center handle color and size, outline color and width, and the active Indy shape tool button highlight color, glow, and border width.

If lib - ColorSettings is active, Indy Walls uses its color picker UI for color settings. Without it, color settings remain plain hex text fields.

The editor controls include a compact shortcut help button by default. It shows shortcuts for the current shape tool only, can be dragged by its title, remembers its last position, and can be disabled with the shortcut help module setting.

Editing Undo/Redo

While editing an Indy Walls shape, use the undo/redo buttons or Ctrl-Z/Ctrl-Y to undo and redo preview edits. These shortcuts are swallowed by the module during shape editing so they do not affect Foundry wall history or browser form undo.

Curved Walls

The Wall Controls include a Cubic Bezier Wall tool.

Basic workflow:

1. Open Wall Controls.
2. Select the Cubic Bezier Wall tool.
3. Click-drag on the canvas to place the initial curve.
4. Drag the red endpoint handles or green Bezier handles to adjust the curve.
5. Right-click the curve to toggle between one-handle arc mode and two-handle Bezier mode.
6. Use `+` and `-` buttons, or Ctrl-scrollwheel, to change the number of generated wall segments.
7. Use the check button or Enter to create wall segments, or Escape to cancel.

Ctrl-left-click any generated segment to reopen the curve editor, including arc/Bezier mode, handles, segment count, hidden segments, and per-segment wall types, so it can be adjusted and re-applied.

Ellipse Walls

The Wall Controls include an Ellipse Wall tool.

Basic workflow:

1. Open Wall Controls.
2. Select the Ellipse Wall tool.
3. Click-drag on the canvas to place the ellipse.
4. Hold Alt while placing to make a circle.
5. Hold Ctrl while placing to grow the ellipse from the center point.
6. Drag the red corner handles to resize the ellipse. Hold Alt while resizing to keep it circular.
7. Drag ellipse vertices to rotate the ellipse.
8. Left-click inside an ellipse gap to close that gap. An ellipse can have multiple gaps.
9. Alt-click a visible segment to create an angular gap. Drag the gap start/end handles to resize or move the gap precisely.
10. Use `+` and `-` buttons, or Ctrl-scrollwheel, to change the number of generated wall segments.
11. Use the check button or Enter to create wall segments, or Escape to cancel.

Ctrl-left-click any generated segment to reopen the ellipse editor so it can be adjusted and re-applied.

Rectangle Walls

The Wall Controls include a Rectangle Wall tool.

Basic workflow:

1. Open Wall Controls.
2. Select the Rectangle Wall tool.
3. Click-drag on the canvas to place the rectangle.
4. Left-click a rectangle side to add a vertex and split that side.
5. Drag intermediate vertices along their side to reposition the split.
6. Alt-click an intermediate vertex to remove it.
7. Alt-click a wall segment between vertices to create a gap in that side.
8. Left-click a gapped segment to restore it.
9. Alt-click a side with no intermediate vertices to remove that side wall.
10. Left-click a removed side to restore it.
11. Use Ctrl-scrollwheel to change all four side segment counts together.
12. Use the check button or Enter to create wall segments, or Escape to cancel.

Ctrl-left-click any generated segment to reopen the rectangle editor, including per-side vertices, segment gaps, and removed sides, so it can be adjusted and re-applied.

When Convert adjacent rectangles with shared sides is enabled, rectangles also automatically hide side segments that overlap existing Indy shape walls while drawing, resizing, moving, or editing vertices. 

When Monk's Wall Enhancement snapping is active, rectangle placement and editing snap to nearby wall endpoints, vertices, and wall lines using Monk's configured snap tolerance. 

Polyline Walls

The Wall Controls include a Polyline Wall tool for drawing vertex-to-vertex wall paths.

Basic workflow:

1. Open Wall Controls.
2. Select the Polyline Wall tool.
3. Click on the canvas to place each point.
4. Double-click to stop drawing and enter edit mode.
5. Double-click back on the first point to stop drawing as a closed polygon.
6. Drag points to reposition them.
7. Left-click a segment to add a point, or to restore a hidden segment.
8. Hover over a segment and press c to cycle it between a straight line, an arc, and a Bezier curve.
9. Drag the curve handles on arc and Bezier segments to adjust their shape.
10. Use Ctrl-scrollwheel to change the generated point count for curved segments. Straight line segments remain single wall segments.
11. Alt-click a point to remove it.
12. Alt-click a segment to hide it.
13. Use the check button or Enter to create wall segments, or Escape to cancel.

Ctrl-left-click any generated segment to reopen the polyline editor, including closed polygon state, hidden segments, curve modes and handles, global and per-segment curved detail, and per-segment wall types.

License

Indy Walls is licensed under the BSD 3-Clause License. See [license.md] for the full license text.

Attribution

This module borrows heavily from the ideas in DragonFlagon Curvy Walls from the DragonFlagon FoundryVTT Modules project:

https://github.com/flamewave000/dragonflagon-fvtt

DragonFlagon FoundryVTT Modules is licensed under the BSD 3-Clause License. The required copyright notice,
license conditions, and disclaimer are included in (license.md).

Categories

Available Versions

  1. Version 1.1.7

    13 hours, 27 minutes ago
    Foundry Version 13 - 14 (Verified 14) Manifest URL Read Notes
  2. Version 1.1.6

    2 days, 5 hours ago
    Foundry Version 13 - 14 (Verified 14) Manifest URL Read Notes
  3. Version 1.1.5

    3 weeks ago
    Foundry Version 13 - 14 (Verified 14) Manifest URL Read Notes
  4. Version 1.1.4

    1 month ago
    Foundry Version 13 - 14 (Verified 14) Manifest URL Read Notes
  5. Version 1.1.3

    1 month, 3 weeks ago
    Foundry Version 13 - 14 (Verified 14) Manifest URL Read Notes
  6. Version 1.1.2

    1 month, 4 weeks ago
    Foundry Version 13 - 14 (Verified 14) Manifest URL Read Notes
  7. Version 1.1.1

    1 month, 4 weeks ago
    Foundry Version 13 - 14 (Verified 14) Manifest URL Read Notes
  8. Version 1.0

    2 months ago
    Foundry Version 13 - 14 (Verified 14) Manifest URL Read Notes
  9. Version 0.9

    2 months ago
    Foundry Version 13 - 14 (Verified 14) Manifest URL Read Notes
  10. Version 0.8

    2 months ago
    Foundry Version 13 - 14 (Verified 14) Manifest URL Read Notes
  11. Version 0.7

    2 months ago
    Foundry Version 13 - 14 (Verified 14) Manifest URL Read Notes
  12. Version 0.6

    2 months ago
    Foundry Version 13 - 14 (Verified 14) Manifest URL Read Notes
  13. Version 0.5

    2 months ago
    Foundry Version 13 - 14 (Verified 14) Manifest URL Read Notes
  14. Version 0.4

    2 months ago
    Foundry Version 13 - 14 (Verified 14) Manifest URL Read Notes
  15. Version 0.3

    2 months ago
    Foundry Version 13 - 14 (Verified 14) Manifest URL Read Notes
  16. Version 0.2

    2 months ago
    Foundry Version 13 - 14 (Verified 14) Manifest URL Read Notes