Skip to main content

Upgrading to 1.2 version

Once you upgrade the plugin to version 1.2, follow the below instructions to update the assets and benefit from the new features. See the release notes for the full list of changes.

Upgrading the Asset Library​

We released version 1.3 of the Asset Library. It no longer uses the removed PathLayer overrides (see below) and its asphalt center and edge meshes were merged to work better with Smart Scaling.

If you haven't made modifications to the Asset Library, the easiest way to upgrade it is by downloading the latest version of the library. Close the Unreal Editor and delete the library folder from disk. Then replace it with the new version of the library.

Landscape adjustment in PathSplines has been removed​

Configuring landscape adjustment in PathSplines was deprecated in Errant Paths 1.1. In Errant Paths 1.2, it causes a Blueprint compilation error.

Use the dedicated LandscapeAdjustmentSpline (EpLandscapeAdjustmentSplineComponent) instead. The existing PathSpline adjustment data is preserved, so you can still convert your PathTemplates with the batch upgrade tool: go to Project Settings -> Errant Paths and select the bBatchUpgradePathTemplates checkbox.

The "Adjust To Path Splines" toggle was also removed from the Landscape Adjustment Overrides in the PathDescription.

PathLayer Override has been removed​

PathLayer Override was deprecated in Errant Paths 1.1 and is removed in Errant Paths 1.2. PathLayers can no longer be set for an entire PathTemplate in the PathDescription.

If your PathTemplates relied on the override, assign PathLayers to each component in these PathTemplates. Components without a PathLayer cause a Blueprint compilation error.

tip

It's easiest to assign the PathLayers before upgrading the plugin, while the overrides are still visible in the PathDescription.

Path Adjustments​

The fixed set of PathAdjustment properties was replaced by a list of modular Path Adjustments that can be reordered and extended with your own Blueprint/C++ adjustments. Existing settings are converted automatically, so no action is required in most cases.

The only exception is projection onto geometry. The Ignored Actors list was replaced by Allowed Hit Actor Classes, and the ignored actors are not transferred to the new adjustment. If you used that list, check the projection settings of the affected PathDescriptions. See Project Onto Geometry/Landscape.

Project Onto Geometry Generation Callbacks​

Previously, UEpProjectComponentOntoGeometry always projected components in the PostLandscapeAdjustment stage. Starting with Errant Paths 1.2, the projection only happens when the ProjectOntoGeometry function is called, which allows choosing the generation stage.

The GenerationCallbacks provided with the plugin (e.g. EGC_ProjectOntoLandscape) were updated. If you created your own GenerationCallbacks derived from UEpProjectComponentOntoGeometry, override the stage in which the projection should happen (PostSpawn, PreLandscapeAdjustment or PostLandscapeAdjustment) and call ProjectOntoGeometry there. Otherwise, these callbacks won't project the components. See Generation Callbacks.

Smart Scaling​

Paths can now be made wider or narrower by scaling PathSpline points. Smart Scaling is enabled by default, so if your existing Paths have PathSpline points with a scale other than 1, they will change their width after regeneration.

To restore the previous behavior, reset the scale of these PathSpline points, or disable Smart Scaling in Project Settings -> Errant Paths -> Smart Scaling.

Negative forward axes in SplineMeshes​

Using NegX/NegY/NegZ as the forward axis of SplineMeshes is deprecated, as it flips mesh normals and causes the mesh to render incorrectly. A warning is shown when compiling PathTemplates that use them.

Create a version of the mesh that faces one of the positive axes and adjust the forward axis of the component. Negative forward axes will be removed in the next release.

Spawning Actors​

Actors spawned by UChildActorComponent in PathTemplates get recreated each time the level is loaded or the component is reregistered. We recommend replacing these components with UEpPathTemplateChildActorComponent, which only recreates its Actor when the Path is regenerated. See Child Actor Components.

Regenerating Paths​

The Generate button (Alt + G) now always regenerates all aspects of a Path, so holding Shift to force the generation is no longer needed. The new Complete button (Shift + Alt + G) completes the generation without a full regeneration, for example to generate physics after enabling the Physics toggle. See Regenerating Paths.

The PCG interaction settings were moved from the Path properties to the Errant Paths Editor Mode menu. See PCG.

SubActor reuse​

Paths store their generated content in SubActors. In levels that use One File Per Actor (e.g. World Partition), each SubActor is saved in its own file. Previously, regenerating a Path deleted its SubActors and spawned new ones with new names. As a result, every regeneration deleted and added files in source control, even when the Path barely changed.

Starting with Errant Paths 1.2, regenerating a Path reuses the names of its previous SubActors. The new SubActors are saved to the same files, which show up as modified instead of being deleted and re-added. This keeps changelists smaller and the file history of SubActors intact. New files are only added when the regenerated Path needs more SubActors than before.

No action is required. The names of existing SubActors are reused on the first regeneration after the upgrade.

note

SubActor reuse requires Unreal Engine 5.7 or later. In Unreal Engine 5.6, SubActors are still deleted and recreated on each regeneration.

Renamed code elements​

These changes only matter if you use the plugin from C++ or Blueprints:

  • "BiomeMask" was renamed to "BiomesMask" in classes, properties and functions (e.g. FEpBiomeMaskAdjustmentProperties -> FEpBiomesMaskAdjustmentProperties). Existing assets are redirected automatically.
  • The LogPaths log category was renamed to LogErrantPaths, as Unreal Engine defines its own LogPaths category. Update your log filters and DefaultEngine.ini log verbosity settings if needed.
  • Materials that sample Errant Paths BiomesMasks with a generic node instead of the dedicated node now fail to compile (instead of sampling incorrectly).