Skip to main content

Errant Paths 1.0

· 6 min read

image

Since we made Errant Paths publicly available 12 months ago, we've dedicated thousands of hours to bug fixes, developing new features, enhancing the UI, and refining workflows. With this progress, we’re proud to officially call this release version 1.0. While there’s still a long way to go to achieve perfection, we’re incredibly proud of what we’ve built so far.

Errant Paths 1.0 introduces a new Cables and Attachments system, a complete rework of the UI, crucial workflow improvements, enhanced Label painting, and refinements across multiple other systems. These updates focus on making this powerful yet complex plugin accessible, user-friendly and enjoyable for everyday use.

tip

Errant Paths 1.0 introduces new asset types and settings that need to be adjusted. Make sure to follow the upgrade instructions after installing the new plugin version.

New Features:

Cables and attachments

Errant Paths now supports attaching CableComponents and meshes to points along a Path, making it easy to construct structures like power lines, suspended bridges, and banners. The plugin and our updated AssetLibrary include examples that you can adapt for your projects.

image

UI Rework

PathTemplate list in PathDescription and SpawnCondition UI previously felt cluttered and overwhelming, with excessive nesting and poor use of vertical space. The SpawnCondition UI also failed to clearly convey conditional spawning concepts and was hard to inspect due to its textual form.

image

We’ve reworked these UI elements to be more compact, use colors and shapes for Labels, hide unused features, and provide a clearer overview of SpawnConditions at a glance.

Multiple PathLayers within one PathTemplate

PathLayers organize Path components that must form a continuous surface (e.g., asphalt meshes) and determine their spawn order. Previously, each PathTemplate could assign only one PathLayer to all its components, which required creating more PathTemplates and added unnecessary complexity.

image

To address this, PathLayers can now be assigned per component directly in the PathTemplate/Blueprint Editor. PathLayers are now assets, not just names, enabling easier renaming and reference tracking.

You can still assign a single PathLayer to an entire PathTemplate in the PathDescription, now called a "PathLayer Override."

Previously, the spawn order was determined by the order of PathLayers in the PathDescription's list. Starting with Errant Paths 1.0, the spawn order is defined directly in the PathLayer asset.

Old PathLayer names are automatically converted to PathLayer assets, but you should review and organize these assets into appropriate folders.

note

We have yet to utilize this feature fully in our AssetLibrary. We plan to reduce the number of PathTemplates over time by combining the related ones together.

Use Component or PathTemplate as reference for the SpawnCondition's DetectionRange

Components' SpawnCondition DetectionRange can now be defined relatively to:

  • component bounds
  • PathTemplate bounds.

New way to add spline points

You can now conveniently add points to a Path by holding Ctrl + Q and clicking LMB over the landscape. The new points are projected onto the terrain and can be added to either end of the Path or its inner points.

Improved Label painting tool

In the previous versions of Errant Paths, painting Labels was frustrating due to the erratic cursor behavior caused by projection onto the nearest Path spline. We resolved this issue by introducing a circular brush with adjustable radius. Painting Labels is now reliable, smooth and precise.

Ability to ignore short Label sections

We introduced the ability to ignore short Label sections. This is particularly useful for Labels that are meaningful only when they span a certain minimum length. For example, a "Large Bridge" Label doesn't make sense when it's activated for just a few meters. The same is true for many other Labels, such as lane markings, guardrails, road signs.

Overlap Resolver

When multiple components are spawned conditionally and their SpawnConditions are satisfied within the same area, they may spawn on top of each other, especially at Label's start and end. Previously, we attempted to address this issue by fine-tuning DetectionRanges and creating complex SpawnConditions, but this approach proved unreliable.

image

In Errant Paths 1.0, we shifted away from relying heavily on SpawnConditions for this task. Instead, we introduced an Overlap Resolver that can remove overlapping components based on their assigned priority. This allowed us to reduce the number of possible SpawnCondition configurations and led to more intuitive UI.

image

Longitudinal landscape adjustment

Paths can now adjust the landscape along the spline. This feature helps smooth terrain at the ends of the Path, near the bridge entries, and in places where two Paths connect. The falloff can be controlled via a curve, just like the lateral adjustment.

We also have a solid plan on how to improve the terrain around the tunnel entries, where adjustment settings change within the Path. Improvements to that will likely come in the next release.

image

PCG Interoperability

When using PCG and Errant Paths together, you usually don't want both systems to generate simultaneously, to avoid processing partially updated landscape, weigthmaps, or geometry. To address this problem, Paths can now pause PCG generation within their bounds, optionally cleanup the PCG generated content, and then resume the PCG generation after the Path update is finished.

Manual license seat locking

By default, when you enter Errant Paths editor mode, a license seat is automatically acquired from the available pool and gets locked to your PC for several hours. The same applies when generating a Path via our BP API. In larger teams, this can lead to accidental or unintended use of license seats. To prevent this, we introduced a manual mode that requires pressing a button to acquire a seat.

image

Improvements:

  • Instancing can now be disabled for individual StaticMeshes in the PathTemplate.

image

  • Labels can now be quickly filled with Manual Editions (with True or False values) via the Label context menu.

image

  • We now allow for clearing PathDesc, PathAdjustment and first PathDesc's PathTemplateGroup. This is needed to avoid warnings when creating a class derived from AEpPath.

image

  • Restrict "EpLabelLibrary" BP function library availability to Label Blueprints to avoid clutter.
  • Switched from using from PIXUtilities to IRenderCaptureProvider.

Fixes:

  • Fixed Landscape Adjustment setting changes being ignored sometimes
  • Labels can no longer be selected or deselected during painting to prevent accidental changes
  • Improved performance when moving/removing Tag assets while PathTemplate was opened
  • Fixed TagPicker displaying the same Tags assets multiple times if they were moved
  • Fix Path bounds calculation for empty SubActors.