Skip to content

v0.21.3 - PR queue closeout

Choose a tag to compare

@tumourlove tumourlove released this 26 Jul 09:02
· 10 commits to master since this release

Closes out the open pull-request queue. Every fix below came from a contributor report — thanks to @Thomasbehan, @whalemenace, and @kunkunGames for write-ups detailed enough to reproduce from directly.

Downloads

Pick the zip matching your engine. The auto-updater selects it for you.

Engine Asset
UE 5.7 Monolith-v0.21.3-UE5.7.zip
UE 5.8 Monolith-v0.21.3-UE5.8.zip
legacy updaters Monolith-v0.21.3.zip (copy of the UE 5.7 build)

Added

  • niagara get_module_graph can emit link topology. Pass links: true and the response gains a top-level edges array plus a pin_id on every pin, so you can trace branches through static switches or find dead ones without exporting to T3D and parsing LinkedTo yourself. Output is unchanged when the flag is absent. Edges are keyed by the (node_guid, pin_id) pair, because pin IDs alone are not unique within a graph — copy-paste duplicates them. Thanks @whalemenace (#109).

Fixed

  • ui set_widget_property can now set Margin and Vector4 properties. The value parameter was declared as a string, so every documented shape — [22,14,22,14], {"left":26,...}, or a bare 20 for a uniform margin — arrived as text and was rejected, while the error message listed those exact shapes as valid. value is now typed any, and both parsers additionally accept string-encoded and comma-separated forms. Thanks @Thomasbehan (#110).
  • Malformed destination paths are rejected before anything is created. Seventeen asset-creation actions across blueprint, material, and niagara now validate the destination up front instead of passing input such as //Game/Foo to low-level package APIs. Nothing is created, loaded, or left dirty on a rejected call. In the compound PBR workflow, an invalid option or an existing-material collision now fails before the first texture is imported. Thanks @kunkunGames (#106, #107, #108).
  • Material creation no longer risks overwriting an unindexed asset. The collision probe is an Asset Registry query, which cannot see a .uasset that is on disk but not yet indexed — during a startup scan, or copied in out of band. Creation now forces the package load that makes the check authoritative, so existing content is merged rather than clobbered.
  • A spurious error log on every successful asset creation is gone. Destination probes previously attempted a load that was expected to fail, emitting LogEditorAssetSubsystem: Error on the normal path.

Changed

Three user-visible changes, all in the direction of failing loudly rather than quietly producing something broken.

  • Destination paths containing characters Unreal forbids in a package name are now errors. That set is \ : * ? " < > | ' <space> , . & ! ~ @ #. Previously such input passed a much weaker check and produced a mangled asset. If a path you rely on is rejected and you believe it is legitimate, please open an issue rather than working around it.
  • Object-path destinations are accepted and normalised. Because the forbidden set includes ., the stricter validation above would otherwise reject /Game/Foo/M_Bar.M_Bar — which is exactly what you get copying a path out of a search result. The redundant suffix is stripped when it unambiguously names the same asset; a mismatched leaf, a dot inside a folder segment, or more than one dot is still rejected.
  • blueprint seed_data_asset with dry_run: true reports a malformed path as an error rather than returning a dry-run report, since validation runs before the dry-run branch.

Notes for contributors

CONTRIBUTING.md now states that UE 5.7 is the compile floor and that changes must build on both 5.7 and 5.8, with any newer API behind an ENGINE_MINOR_VERSION gate. A pull-request template checks for it. A .gitattributes also normalises line endings, so contributions no longer arrive as whole-file CRLF rewrites that bury a small change.

Verification

Both engines built clean with MONOLITH_RELEASE_BUILD=1, -DisableUnity, the full-unity collision gate, and the dumpbin import smoke.

Monolith-SHA256-v2-UE5.7: f67cb132c9868a72c80059ccb2fe76c7586c8094116c939e1fbaa1e0dde16f63
Monolith-SHA256-v2-UE5.8: 8654acb0abd0b81ea24ea60486b447a5d22e5d12ff6e529d6df15ce26d3cc1df
Monolith-SHA256-v2: f67cb132c9868a72c80059ccb2fe76c7586c8094116c939e1fbaa1e0dde16f63