Features

  • Runtime floor placement — single-tile placement and area fill mode. Toggle between modes with the Shift key.
  • Polygon-based procedural mesh — floor surfaces are triangulated from 2D polygons using the earcut algorithm via ProceduralMeshComponent.
  • Node network boundary detection — walls or other boundaries are modelled as a connected graph of UBasicNode objects. The plugin detects enclosed areas automatically.
  • Room-within-room nesting — inner and outer nesting depth is tracked, so rooms inside rooms are supported.
  • Preview before commitEnterPreviewMode / ExitPreviewMode writes to a preview state without touching the production polygon database.
  • Material ID system — materials are assigned via integer IDs, not direct asset references. The SimpleMaterialManager Blueprint maps IDs to UMaterialInterface at runtime.
  • FloorType layersDefault, Border, and Invisible logical layers that do not interfere with each other.
  • Polygon boolean operationsUnionPolygons, DifferencePolygons, DoPolygonsIntersect, DoPolygonsStrictlyIntersect (powered by Clipper2).
  • Save and loadUPolygonDatabaseSaveManager and UNodeSystemDefaultSaveManager. Custom save logic supported via INodeSystemSaveManagerInterface.
  • Fully Blueprint-driven — all user-facing integration points are Blueprint interfaces. No C++ required.
  • Example map includedDynamicFloorPlugin/Maps/Preview_DynamicFloorPlugin. Press Play to explore the full placement pipeline.

Requirements

ProceduralMeshComponent required

The plugin requires the ProceduralMeshComponent Unreal Engine plugin, which is bundled with Unreal Engine. It must be enabled in your project under Edit → Plugins → search "Procedural Mesh".

No other external dependencies are required. The third-party libraries earcut (triangulation) and Clipper2 (polygon boolean operations) are bundled directly with the plugin.

Not supported

  • ! Multiplayer / network replication — explicitly not supported.
  • ! Mac — explicitly not supported (development or target platform).
  • ! Automatic grid snapping — not built-in. Must be implemented in FindValidHitResult on the placement tool. See Grid & Snapping docs.

Compatibility

Unreal Engine5.5, 5.6, 5.7 (continuously updated)
Target platformsWindows
Linux TODO verify — listed in PlatformAllowList but not confirmed as tested target platform
MacNot supported
Network replicationNot supported
Required UE pluginProceduralMeshComponent (included with UE)
DependenciesNone beyond ProceduralMeshComponent