Skip to main content

Errant Landscape 1.7

· 5 min read

Unreal Engine 5.7 support, alongside various improvements and bug fixes

New Features

Stamp Brush Enhancements

  • Noise Input for Stamp Brush - You can now add noise as an input source for your stamp brush. Same controls as in the Noise brush but can be applied on stamp layers.
  • Spline-Point Scale Component Support - When using the spline brush in spline mode, you can now select which spline point scale component(X, Y or Z) to use as the brush width multiplier
  • Use UTexture for Stamp - The stamp brush now accepts UTexture instead of just UTexture2D, giving you more flexibility with texture types
  • Texture Validation - Added validation to ensure texture inputs used in brushes are of compatible types, preventing crashes from invalid textures

Runtime Landscape Features

  • Brush Priority System - Add priority levels to brushes so they apply in the correct order at runtime similar to offline brushes
  • Static Brushes - Renamed "Runtime Persistent" brushes to "Static Brushes" for clarity. These brushes persist on the landscape and aren't removed after rendering
  • Bounds Visualization - Added the ability to visualize brush bounds in the editor for runtime brushes. With brush selected you'll see outline just like with offline brushes.
  • SetDefaultLandscape for Blueprints - Exposed SetDefaultLandscape function for use in Blueprints, allowing you to change which landscape the plugin targets
  • Runtime Spline Brush Support - Runtime spline brushes are now supported, allowing you to dynamically modify landscapes using spline-based brushes at runtime

Masking

  • Post-Process Material Parameters - Added automatic detection of material parameters when a material is used as a stamp source, and the UI now shows these parameters for adjustment
  • SetMaskPostProcessMaterial for Blueprints - Exposed SetMaskPostProcessMaterial function for Blueprints
  • Mask Render Size Control - Fixed issues with changing mask render size and improved parameter display for post-process materials

Editor Mode & Tools

  • Realtime Override - Added an option to override realtime preview in the editor mode, giving you more control over preview refresh
  • World Partition Builder Volume Selection - The World Partition Builder can now build only selected volumes

User Interface Improvements

  • Brush Outline Scaling - Added an option to scale brush outlines with brush size for better visual feedback
  • Live Preview Updates - Stamp brush tiling settings now show changes live in the preview
  • Tooltips Improvements - Improved clarity in tooltips and UI text throughout the plugin

Blueprint API Enhancements

  • QueueRender Callable from Blueprints - You can now call QueueRender from Blueprint, allowing you to trigger runtime landscape updates in your game logic
  • GetBrushPriority Access - Fixed GetBrushPriority to be properly usable from Blueprints
  • OnLandscapeCollisionsUpdated Delegate - New Blueprint-callable delegate that fires when landscape collisions are updated at runtime
  • Property Setters - Added missing setters for variables that Unreal Engine adds to the blueprint editor but fails to call modify on

Memory & Debugging

  • LLM Memory Tags - Added LLM (Landscape Level Management) memory tags for runtime landscape, improving memory profiling

Fixes & Stability Improvements

Critical Fixes

  • Fixed a crash that occurred when runtime landscapes had Z locations that were too high
  • Fixed crash when selecting a Bridge actor in Unreal Engine 5.5
  • Fixed fatal error that occurred when removing landscapes
  • Fixed crash during ConvertHeightmapToCollisionData operation in runtime landscapes

Stamp & Brush Fixes

  • Fixed crashes when stamp brush had null materials
  • Improved crash handling during stamp brush material validation
  • Fixed garbage data appearing in layered stamp textures when no mask is applied
  • Fixed broken "reset to default" button on stamp brush layers
  • Ensure stamp textures are loaded before painting
  • Fixed references to outdated mask asset paths in noise brushes

Mask & Material Fixes

  • Changing mask render size no longer leaves leftover mask data
  • Fixed post-process material not rendering correctly when using textures that aren't pre-loaded

Runtime Brush Fixes

  • Fixed invalid out-of-bounds render warnings for runtime brushes
  • Don't check non-static brushes for valid static brush bounds
  • Fixed static brushes failing to render when landscape has an offset
  • Fixed issue where landscapes could be removed outside the main thread
  • Removed incompatible settings from persistent/static brushes
  • Fixed Bridge actor references after copying from another world
  • Brushes now properly update when landscapes are moved

Subsystem & Editor Fixes

  • Fixed PCG updates when the landscape changes offline
  • PostDuplicate is now properly called on components after duplication
  • Fixed UI issue when drag-duplicating brushes
  • License state changes now properly refresh the UI from the editor mode
  • Fixed parsing errors in edit condition strings
  • Fixed potential memory issues with property unregistration
  • Runtime landscape changes now properly reset when reloading a game level in PIE

Editor UI Fixes

  • Fixed outdated edit condition checks in the UI
  • Now shows all unique error notifications instead of duplicating them
  • Fixed missing noise brush mention in certain UI contexts
  • Hide Biomes Mask visualization when Biomes Plugin is not available
  • Fixed typo in Visibility mask name

Performance & Optimization

  • Improved performance of texture validation checks
  • Track lifetime of brushes when sent to other threads, preventing crashes
  • Various performance improvements in landscape utilities for split/merge operations
  • Fixed errors in weightmap split and readback operations
  • Added recursive division of render areas into smaller parts when rendering large areas

Upgrade Notes

When upgrading from 1.6.x to 1.7.0:

  1. "Runtime Persistent Brushes" have been renamed to "Static Brushes" - existing brushes will continue to work
  2. Review brush priorities if you have multiple runtime brushes affecting the same landscape