Nightshift / Unreal Editor tools
LandSnap documentation
A practical guide to placing actors on terrain. Start with a selection, snap it to a valid surface, then review and refine the result.
Quick start
#LandSnap snaps selected actors, particle systems, spline components, and spline mesh components onto supported surfaces. All placement work happens in Unreal Editor.
- Open the panel. After installing LandSnap, choose Window → LandSnap Panel and dock it beside your viewport.
- Select your objects. Start with a rigid mesh actor above a loaded Landscape. Mixed actor and spline selections are also supported.
- Choose a surface mode. In Placement Studio → Snap Targets, use Only Terrain Surfaces for Landscape or UE 5.8 Mesh Terrain.
- Snap the selection. Click Snap Selected or press Ctrl + ↓.
- Inspect the result. Check the viewport and the Needs Review list. Use Undo to restore placement, or review and repair an unresolved result.
Installation
#| Requirement | Supported target |
|---|---|
| Engine | Unreal Engine 5.8 |
| Platform | Win64 editor |
| Scope | Editor plugin; no runtime gameplay component or packaged-build cost |
| Agent integration | Optional. The core placement workflow works independently of MCP. |
- Install LandSnap from Fab. For a project-local plugin folder, use
YourProject/Plugins/LandSnap/. - Open the project and enable LandSnap in Edit → Plugins if prompted.
- Restart Unreal Editor. Allow a module rebuild if required for your installation.
- Open Window → LandSnap Panel. A clean configuration also shows the Snap Selected and AutoSnap toolbar buttons.
The Fab install contains both the core LandSnap module and the LandSnapMCP adapter. Enable agent integration separately when you want to connect a client.
Panel & controls
#Placement Studio contains the main snap action, surface settings, and review controls. The panel edits the same live settings used by toolbar actions and hotkeys. You can also find them in Editor Preferences → Plugins → LandSnap.
| Action | Where to find it | Default shortcut |
|---|---|---|
| Snap Selected | Panel, toolbar, or selected actor's viewport right-click Snapping submenu | Ctrl + ↓ |
| AutoSnap | Checkable toolbar button or panel mode setting | Ctrl + Shift + ↓ |
| Open the panel | Window → LandSnap Panel | — |
| Review a placement | Placement Studio's Needs Review list | — |
Rebind hotkeys
Use Setup → Hotkeys → Snap Selected Hotkey or AutoSnap Toggle Hotkey. These apply live and stay synchronized with Editor Preferences → Keyboard Shortcuts → LandSnap Plugin.
Configure the toolbar
Setup → Configure Hotbar can hide either toolbar button. Its panel control and shortcut remain available. The compatibility spline-only command remains available for existing integrations; the unified Snap Selected action handles splines in the normal workflow.
AutoSnap
#AutoSnap is one global editor mode. Turn it on to settle eligible placements, duplicates, pastes, and completed edits. It waits for editing to stop before running a snap and verification pass.
- Click AutoSnap in the toolbar or press Ctrl + Shift + ↓.
- Leave AutoSnap Target Mode at Terrain / Mesh Terrain for terrain placement.
- Place or edit one eligible object. After the edit settles, inspect its placement and any review result.
- Toggle AutoSnap off when you want to place freely.
| Setting | Default | Behavior |
|---|---|---|
| Enable AutoSnap Mode | Off | Matches the toolbar toggle. |
| AutoSnap Target Mode | Terrain / Mesh Terrain | Choose Use Normal Snap Targets to reuse the manual surface filters, including tagged targets. |
| AutoSnap Settle Delay | 0.08 s | Quiet period after an eligible edit. |
| Allow Z Correction | On | Preserves a deliberate Z-only actor height adjustment. |
| Allow Rotation Fine-Tuning | Off | When enabled, preserves rotation-only actor edits after earlier queued work finishes. Re-snap if the new orientation changes ground contact. |
| AutoSnap Repair Attempts | 2 | Allows 0–2 bounded verification repair attempts after the initial placement. |
| Enable Heuristic Fallback | Off | Optionally searches configured rotation and scale candidates for unresolved results. |
Stock spline-point and spline-mesh endpoint/tangent edits also enter the deferred AutoSnap workflow. Programmatic spline changes that bypass normal editor notifications require an explicit snap.
Surface modes
#Choose your valid targets under Placement Studio → Snap Targets → Surface Types. Terrain-only and tagged-only are mutually exclusive; exactly one surface mode is active.
| Mode | Valid targets | Typical use |
|---|---|---|
| Only Terrain Surfaces | Unreal Landscape and recognized UE 5.8 Mesh Terrain actors/components | Props, buildings, and spline placement on terrain |
| Only Tagged Surfaces | Actors/components matching your configured surface tags | Designer-owned roads, platforms, or mesh surfaces |
Set up a tagged surface
- Add an Actor or Component tag to the intended target, for example
SnapSurface. - Add that same tag to LandSnap's allowed surface tags in Snap Targets → Tag Filters.
- Enable the corresponding Actor-tag or Component-tag check.
- Choose Only Tagged Surfaces and run Snap Selected.
Ignore tags exclude unwanted surfaces. An empty allowed-tag list in tagged-only mode produces no valid target. The mode enables its required Visibility trace fallback automatically; disabling that fallback switches the surface mode back to terrain-only.
Actors, particles & splines
#| Selection | What LandSnap moves | Useful settings |
|---|---|---|
| Rigid actor / ordinary component | The actor; selecting an ordinary component targets its owner. | Bounds-bottom or pivot placement, normal alignment, preserved yaw, Z Offset |
| Niagara / Cascade actor | The actor pivot by default, with rotation preserved. | Snap Particle Actors By Pivot; optional particle normal alignment |
| Spline Component | Spline points, without also moving the owner as a whole actor. | Spline Z Offset, normal alignment, alignment point cap |
| Spline Mesh Component | Segment endpoints; optional segment alignment is experimental. | Spline offset and segment normal alignment |
Rigid actors
Bounds-bottom placement helps objects with off-center pivots rest on the ground. Use pivot placement when the asset's origin is the intended contact point. Surface-normal alignment tilts the object to the target; preserved yaw keeps its heading.
Particle systems
Simulated visual bounds can change between frames, so particle placement uses a stable actor pivot by default and bypasses mesh footprint, convex, concave, and bounce correction. An offset child emitter still follows the actor pivot. Enable Snap Targets → Particle Systems → Align Particle Systems to Surface Normal only for emitters that should rotate with the terrain.
Splines
Select the spline owner or the components directly, then run the same Snap Selected action. Mixed selections can include actors, spline points, and spline meshes. Use the point cap for long splines when alignment updates are expensive.
Review & repair
#Placement is verified against the exact captured target. Questionable results remain in Needs Review, with bounds and status information to help you inspect them.
| Result | Meaning / next step |
|---|---|
| Landed | Passed the applicable contact policy. Inspect the visual result for your scene. |
| 3/4 Corners | The retained pose has exactly three measured support corners. Inspect the remaining corner. |
| Floating | Sampled gaps exceed the applicable tolerance. Check collision, offsets, and repair options. |
| Penetrating | Sampled burial exceeds the applicable policy. Review terrain shape and the asset footprint. |
| Wrong surface | Verification found a different target. Check filters, overlapping surfaces, and collision. |
| Insufficient target hits | Coverage is incomplete. Load the target region or move the footprint away from its boundary. |
| Excessive angle | Alignment exceeds the applicable angle limit. Inspect the slope and alignment settings. |
| No initial target | The initial snap could not find a valid surface. Check target mode, tags, trace reach, and collision. |
- Use Review Issues, Previous, and Next to inspect entries without changing their placement.
- Run Heuristic Repair Selected for the active entry, or Heuristic Repair All Errored for retryable entries.
- Watch the bounded candidate search. Use Stop Repair to stop an active job.
- Make any deliberate manual correction. Use Mark Resolved when you accept the result; it clears the warning rather than moving the actor or proving new contact.
Repair uses enabled yaw, pitch, roll, and optional uniform-scale candidates. An unsuccessful search restores its post-snap baseline. Ordinary Snap Selected keeps its baseline by default; Enable Heuristic search post Snap opts a single manual actor into the visible search. Multi-actor snapping retains the queued baseline workflow.
Large selections and Undo
Eligible rigid batches prepare across editor frames and publish bounded groups under one Undo step. Keep Published Batches When Cancelled is on by default: an explicit Cancel keeps completed, target-verified groups and leaves pending actors unchanged. Disable it for all-or-nothing cancellation. Settings, world, or Undo/Redo interruptions restore the original invocation.
Settings reference
#Use the searchable panel settings or Editor Preferences → Plugins → LandSnap. Some controls appear only with advanced settings enabled or with a manual Custom tier. Values below describe fresh defaults; your saved preferences may differ.
| Setting | Default | Purpose |
|---|---|---|
| Z Offset | 0 | Additional vertical offset after snapping; use a small lift or burial intentionally. |
| Trace Up Distance | 100,000 | How far above the actor the initial trace starts. |
| Trace Down Distance | 200,000 | Downward search reach for terrain below the actor. |
| Trace Channel | WorldStatic | The collision channel used for snap traces. |
| Align To Normal | On | Tilts rigid actors to follow the surface. |
| Preserve Yaw | On | Keeps the actor's heading during normal alignment. |
| Pivot Aware Bottom | On | Uses bounds-bottom placement for rigid objects. |
| Snap Pivot To Hit | Off | Places the actor origin directly at the hit point. |
| Use Normal Push Placement | Off | Pushes along the surface normal rather than world Z during aligned placement. |
| Large Actor Tolerance Scale | 1.0 | Adjusts eligible physical-large Landscape contact/burial bands, clamped to 0.1–10.0. Floating tolerance never scales. |
| Setting | Default | Purpose |
|---|---|---|
| Enable Heuristic search post Snap | Off | Runs a visible search after an unresolved single-actor manual snap. |
| Allow Yaw Rotation | On | Permits bounded clockwise/counterclockwise repair candidates. |
| Allow Pitch / Roll Rotation | On | Permits bounded tilt candidates around the actor's local axes. |
| Allow Uniform Scaling | Off | Opts into scale changes during search. |
| Max Heuristic Search Time | 2 s | Shared soft time budget; an in-progress candidate finishes before the next budget check. |
| Enable Snap VFX | Off | Optional green outline acknowledgement for successful placement. |
Warnings, sounds, AutoSnap sound mute, and debug output are configured separately. Debug drawings and verbose logging can make large selections more expensive; enable them for focused diagnosis.
Size tiers
#Size tiers tune trace reach, convex thresholds, and bounce correction for different asset scales. Choose an automatic classifier or a manual tier. Tier selection itself does not choose a different placement solver.
Automatic sizing
The default Mixed range is 100–25,000 cm, using logarithmic buckets. Select a size source: scaled Mesh Asset Bounds, Render Bounds, or Actor Bounds. Values outside the range clamp to the smallest or largest tier.
| Range profile | Range (cm) | Use |
|---|---|---|
| Props | 25–3,000 | Small to medium props |
| Mixed | 100–25,000 | General scenes; default range |
| Large Structures | 500–200,000 | Large architectural assets |
| Custom | Your Min / Max | A project-specific range |
Log uses logarithmic spacing; Linear uses evenly spaced size bins; Quantile uses selection-derived thresholds. Use Auto-Range From Selection (p5/p95) to derive bounds, or Rebuild Quantiles From Selection to rebuild Quantile thresholds.
The separate asset profile can be Auto, Props, Architecture, Foliage / Organic, Vehicles, or Custom. Auto resolves it per actor from tags, class, and shape. The Custom asset profile disables tier overrides and uses manual advanced values.
Manual tier reference
Distances are in Unreal units (cm). On narrow screens, scroll the table horizontally.
| Tier | Convex trace lift | Convex trace depth | Convex threshold | Extra push | Bounce threshold | Bounce max distance |
|---|---|---|---|---|---|---|
| XXXTiny | 25 | 1,250 | 0.0625 | 0.3125 | 0.0001 | 0.05 |
| XXTiny | 50 | 2,500 | 0.125 | 0.625 | 0.00025 | 0.1 |
| XTiny | 100 | 5,000 | 0.25 | 1.25 | 0.00075 | 1 |
| Tiny | 200 | 300 | 0.5 | 2.5 | 0.0025 | 2.5 |
| Small | 300 | 5,000 | 1 | 5 | 0.25 | 5 |
| Medium | 800 | 40,000 | 2 | 10 | 1 | 40 |
| Large | 12,800 | 640,000 | 32 | 100 | 12 | 45 |
| XLarge | 18,000 | 1,200,000 | 48 | 160 | 24 | 50 |
| XXLarge | 27,000 | 1,800,000 | 72 | 220 | 36 | 75 |
| XXXLarge | 45,000 | 3,000,000 | 120 | 320 | 60 | 150 |
Use a manual Custom tier for individual advanced values. A calibration tier is a fixture size reference; it does not change the production classifier.
Large objects & terrain
#Rigid placement uses representative bottom-footprint samples rather than every underside vertex. Ordinary coverage uses nine points: four corners, four edge midpoints, and the center.
Eligible Landscape footprints at least 500 UU (5 m) on both local axes can use nine exact-target terrain heights to infer pitch and roll, followed by corner seating and bounded support-edge fitting. This physical-large policy is separate from the size-tier classifier.
Convex Saddle describes a crest, Concave Saddle a bowl, and Diagonal Saddle opposing curvature. These labels describe measured terrain shape. They do not alone prove contact or successful recovery; unresolved results stay visible for review.
World Partition and terrain boundaries
Load the relevant cells so target collision can be sampled. Leave room around a footprint for rotation: an object near a Landscape edge may tilt beyond available coverage and remain unresolved. Landscape streaming proxies belonging to the same Landscape GUID are recognized as the same logical target.
Experimental Mesh Terrain deformation
Ordinary Mesh Terrain snapping works independently of deformation. For optional terrain shaping, enable Setup → Experimental Settings → Enable Mesh Terrain (Experimental). This reveals Mesh Terrain Settings(Experimental) with Deform Under Selected and the default-off Deform After Snap workflow.
The owned modifier supports a grayscale deformation map, blend behavior, depth, footprint padding, falloff, and priority controls. Repeated actions update or replace the owned component instead of stacking duplicates.
Calibration
#Use Setup → Calibration to prepare repeatable test objects in a suitable test level. Creating a fixture prepares a selection; run Snap Selected to test placement.
| Fixture | Layout | Purpose |
|---|---|---|
| Scatter Test | Seeded 500-cube fixture | Mixed-scale placement and repeat testing |
| Domino · Single Row | 12 cubes by default; configurable 2–500 | Compare a chosen production size reference across a row |
| Domino · Full Map Coverage | Inset 2 km square; capped at 22 × 22 (484 actors) | Sparse placement samples across a larger region |
Domino exposes ten size references from XXXTiny through XXXLarge, with a default 8.73% cube-width gap. The selected tier sizes the fixture; snapping still uses your production classifier and tuning.
Complete fixtures can be reselected after moving or snapping them. Creation fails closed on partial, mismatched, mixed, or colliding ownership evidence. Clean targets exact-owned loaded fixtures independently of the current dropdown; it does not broadly delete actors by label or folder. Load relevant regions and resolve unloaded fixture conflicts before proceeding.
MCP integration
#The included LandSnapMCP editor module lets a compatible client inspect settings, snap a bounded selection, verify exact targets, and run review repair. Epic's UE 5.8 MCP and Toolset Registry features are experimental; core manual placement remains independent.
- Open Setup → MCP and choose Enable Agent Integration, or Configure Agent Integration if onboarding was dismissed.
- Confirm the editor's setup prompt. Restart when requested if Epic's Model Context Protocol plugin was newly enabled or its URL path changed.
- Connect your client to the local endpoint, normally
http://127.0.0.1:8000/mcp. - Discover
LandSnapMCP.LandSnapToolsetDefinitionand inspect the available tools. With Unreal tool search enabled, uselist_toolsets,describe_toolset, andcall_tool.
| Capability | Requirement |
|---|---|
| Read-only status | Configured local transport; try GetStatus. |
| Agent-driven changes | Set Windows User environment variable LANDSNAP_AGENT_ENABLED to 1 before launch, restart the launcher/editor, and confirm Agent mutations: Enabled. |
| Provider credentials | LandSnap requires no provider API key. Any credentials belong to the external client and should stay in operating-system environment variables. |
Keep the endpoint on loopback. Transport activation does not grant mutation permission. The adapter works with selected actors, exact paths, and Outliner folders; it does not create, position, or select actors itself.
Troubleshooting
#| Symptom | First checks |
|---|---|
| No movement / no target | Confirm selection, surface mode, allowed tags, loaded collision, and trace reach. Terrain target actors and unsupported editor helpers are not placement objects. |
| Object floats or sinks | Inspect pivot/bounds-bottom choice, Z Offset, mesh collision, and terrain shape. Use the review result to guide repair. |
| Missing simple collision warning | Inspect the Static Mesh asset's collision. Missing or inaccurate collision can reduce trace reliability even when the visible geometry looks correct. |
| Tagged surface is ignored | Check allowed tags and tag-check scope, ignore tags, target collision, and Only Tagged Surfaces. The allowed list must not be empty. |
| AutoSnap ignores an edit | Check the global toggle and single-actor selection. Z-only edits are preserved by default; rotation-only edits may be preserved when fine-tuning is enabled. |
| Emitter rotates unexpectedly | Disable particle normal alignment to preserve actor orientation. |
| Toolbar button is absent | Use Window → LandSnap Panel and check Setup → Configure Hotbar. |
| Large batch is slow | Work in bounded groups, review frame-budget controls, and turn off unnecessary debug drawing/logging. |
| Footprint loses target coverage | Load the relevant World Partition cells and allow an inset from the terrain boundary for tilt. |
| Agent mutation is blocked | Confirm the OS environment flag was set before the editor and launcher started. Read-only transport availability does not enable mutation. |
Limits to expect
Very thin meshes, extreme slopes, highly concave targets, and broad rigid footprints may need tuning or manual placement. A bounded repair search may finish without a conforming result. Inspect the final pose and keep unresolved results visible until you make an intentional decision.
For help, contact Nightshift with your engine version, target type, relevant settings, and a screenshot of the selection and review result.