Yureka - Grid Placement System

Grid Placement System

A powerful and flexible grid-based object placement framework for Unreal Engine 5.
It features precision controls, multi-surface support, and intuitive UI components - making it perfect for any builder games.

Playable Demo: HERE

Preview Video: HERE

Documentation: HERE

Discord Server: Join our community!

Features

  • Plug-and-play into any project
  • Procedural infinite grid material
  • Snap-to-grid placement with fully configurable sizes
  • Multi-surface support (floors, walls, roofs)

  • Precision (free-form) mode for detailed adjustments
  • Real-time placement validation with clear error feedback

:video_game: Input & Camera Integration

  • Built on the Enhanced Input System
  • Customizable Input Mapping Contexts
  • Works seamlessly in both FPP and TPP
  • Runtime camera optimized for placement mode
  • Full keyboard and mouse support out of the box

:artist_palette: Visual Feedback

  • Grid per surface
  • Color-coded indicators (Green = valid, Red = invalid)
  • Preview meshes with outline materials
  • Directional arrows for easy orientation

:framed_picture: UI Components

  • Ready-to-use widgets for object selection
  • Category-based filtering and search support
  • Customizable item widgets
  • Simple integration with your existing UI

:gear: Developer Friendly

  • Full Blueprint and C++ support
  • Modular, component-based architecture
  • Exposed settings for quick iteration
  • Easily extensible for custom workflows

:rocket: Quick Setup

  1. Only needs 2 Components
    Add these to your Player Pawn Blueprint:

    class UPlacementSystemComponent* PlacementSystem;
    class UPlacementObjectRegistry* ObjectRegistry;
    
  2. Initialize the System
    Call: InitializePlacementSystem(); via PlacementHelper in Blueprint.

  3. Register Placeable Objects
    Use: RegisterObject(); via PlacementHelper // For individual placeable object

    or define them in FPlaceableObjectDataTable.
    Both methods work seamlessly.

  4. Create UI
    Use the built-in default UI, or seamlessly integrate with your own custom UI.

  5. Start Placement
    Begin placing objects with:

    StartPlacing(AMyChair::StaticClass());
    

Build your own Sims-style creative experience, and happy runtime designing!

Available on: Unreal Engine Marketplace