Releases

Changelog

Version history for every GreyFox Studio plugin. Each release lists what was added, changed, fixed or deprecated, together with its engine compatibility.

Souls Destruction Framework

Version 1.0.0 2026-08-25 UE 5.7, 5.8 Release candidate prepared for Fab — one edition per engine version

First non-beta version. The beta flag is removed from the plugin descriptor and every remaining project-specific reference has been purged: a dependency audit across all plugin content reports zero references outside the plugin and the engine.

Added

  • Runtime glass fracture — a new Glass destruction mode that bakes nothing: shards are generated at the moment of impact, around the actual impact point, from a deterministic radial-and-ring crack pattern with per-hit jitter. Every shard is a simulated rigid body with convex collision that ignores pawns. Tuned per profile through FSDFGlassFractureSettings (pattern, shard thickness, physics, cleanup), with persistent Souls-style shards by default.
  • Glass composite authoring — committing a multi-material source with the Glass preset splits it by topological material islands and publishes an ASDFGlassCompositeActor: structural islands (stone, metal, lead…) become an unbreakable frame, every glass island becomes an independently breakable pane with its own destructible component.
  • Preserved material slots — PreservedMaterialSlotNames on the authoring preset, request and manifest: islands whose material matches a keyword are released whole instead of cut. Ships as Stone, Metal, Lead, Iron, Frame, Wood on the Glass preset and Cork on Glass Vessel, so a corked bottle breaks around its stopper.
  • Glass Vessel preset — pre-baked Voronoi tuned for curved glass: 24 / 40 / 64 fragments, very small minimum fragment size, cut faces in the vessel’s own material.
  • Max Health in the authoring window and in Batch — “Max Health (0 = Family Default)” on the Runtime Profile section: a positive value publishes a ready-to-play multi-hit profile (bUseHealth on, the value applied, bDestroyOnSingleValidHit off), zero keeps the family defaults, and the value is recorded in the manifest for faithful regeneration.
  • Structure-aware wood preset family — Wooden Crate (convex piece collision, cut faces re-projected into their board’s UV island), Wooden Barrel (Semantic — strict body/hoops/end-caps recipe with radial staves and an exposed stave count), Wooden Furniture (members snapped to a target debris length) and Wooden Coffin (shallow break roughness on wide panels).
  • Per-family break cues — the generated runtime templates now ship break sounds: wood crate/barrel cues, SC_SDF_CeramicImpact, SC_SDF_StoneImpact and SC_SDF_GlassBreak.
  • Showcase map — /SoulsDestructionFramework/Demo/Maps/L_SDF_Showcase, a complete demo level with titled stands for every preset family, built exclusively from plugin and engine assets.
  • New Geometry Collection profile controls: GeometryCollectionRadialBias, GeometryCollectionDistantFragmentScale, linear/angular damping, restitution and friction.
  • Pawn-collision breaking on the profile: bBreakByPawnCollision, PawnCollisionMinimumSpeed, PawnCollisionPower, plus a MinimumImpactSpeed resistance gate.
  • Settled-debris budget: MaxSettledDebrisActors keeps persistent wreckage bounded, evicting the oldest pieces first.

Candidate update — 2026-09-15

Added to the 1.0.0 release candidate before publication; no publication date or Fab approval is claimed.

  • Physics-ready intact props — new ordinary generations publish the intact prop as Simulated for every preset family, using ASDFPhysicsDestructibleActor. When a destructible support is destroyed, the simulated bodies resting on it wake and fall. Static remains available for fixed props; composite glass windows are always Static.
  • Simulation collision copies — a source without usable simple collision gets an SDF-owned SM_SDF_<Name>_Sim copy, rebuilt in place on regeneration; the source mesh is never modified.
  • Height-based fall damage — optional per profile (bEnableFallDamage, MinimumFallHeightCm, FallDamagePerMeter, FallDestructionPower); enabled on Ceramic and Glass Vessel generations, off elsewhere. Landing hits carry SDF.Source.Collision.Fall.
  • Explicit migration — existing profiles read Keep Existing and are never converted silently; the editor command SDF.MigrateToSimulatedPhysics [VerifyOnly] [Root=] [Exit] migrates generated setups. The shipped demo setups are migrated.
  • Blueprint diagnostics — GetEffectivePhysicsMode, SetPhysicsModeOverride, GetIntactPhysicsStatus, GetLastSupportWakeCount, GetLastFallHeightCm, GetLastFallDamage, ComputeFallDamage.
  • Packages — two source-only Win64 editions, verified on UE 5.7.4 and 5.8.2. The manifest schema is version 4.
  • Debris settling supervision for persistent Chaos debris, tighter coffin panel collision and fitted Stone demo collision.

Candidate update — 2026-10-01

Added to the 1.0.0 release candidate; no publication date or Fab approval is claimed.

  • Modify Destructible — change how an existing destructible breaks from the level, its Blueprint or its source mesh: preset, fracture density, cuts along length, collision shape, fragility, health. Rebuilt in place, so every placed copy updates; same protections as regeneration; scriptable with SDF.ModifyDestructible.
  • Cuts Along Length for the structure-aware wood presets (0 to 5 cuts per board), recorded in the manifest as WoodLengthCuts.
  • Collision Shape for Wooden Furniture: Boxes (default) or Convex, recorded as PieceCollisionShape.
  • Source-look splinters — the wood break effect starts its splinters at the struck point, never lets them rest on or hang inside debris (they collide on the Camera channel, which SDF debris now ignores) and gives splinters and chips the broken object’s base colour texture. New user parameters and FSDFDestructionVFXRequest fields carry the struck point, burst direction, source bounds and FSDFDebrisAppearance.

Fixed

  • Debris can no longer be frozen in mid-air. The physics engine may put a slow fragment to sleep at the top of its arc; the debris guardian now wakes apparently-resting debris before trusting the rest state, so airborne pieces fall and settle on the ground. Applies to every family through the shared cleanup path, and is covered by an automated Play In Editor test.

Changed

  • Plugin descriptor: version 1.0.0, beta flag removed.
  • All demo content and automated tests reference plugin-local assets only.

Known issues

  • The runtime pane generator handles thin, roughly planar panels; curved shells use the pre-baked Glass Vessel path.
  • Regenerate and Batch Generate remain Geometry Collection–backed operations; Glass-family assets are generated through the single-asset service.
  • Batch processing is sequential and synchronous; one shared preset and option set applies per batch.
  • Chaos simulation is not claimed to be bitwise deterministic.
  • Unreal Engine 5.7 and 5.8 are prepared as two separate editions, verified on 5.7.4 and 5.8.2 (the entry originally recorded 5.8.1; the 5.7 package was added on 2026-09-09). Both are source-only and require Unreal’s supported C++ toolchain.
  • Intact physics is not a structural support graph, and physics transforms of intact props are not saved.
  • Network replication is not implemented or validated.
Version 0.1.0 2026-08-13 UE 5.8 In development — not yet published

Current pre-release state of the framework. The plugin is marked as a beta version in its descriptor and has not been published on Fab yet.

Added

  • Runtime destruction core: USDFDestructibleComponent, USDFDestructionProfile, USDFDestructionSubsystem, FSDFDestructionHit and FSDFDestructionResult.
  • Health, minimum damage threshold, damage multipliers and a destruction power gate that is independent from conventional damage.
  • Two presentation backends: GeometryCollection and SwapAndScatter, with an automatic fallback when a Chaos representation cannot be activated.
  • World-level budgets: active Chaos representations, destruction events per frame, built-in audio events per frame and built-in VFX events per frame, plus read-only diagnostics.
  • Melee, collision and projectile hit sender components, each with duplicate suppression and explicit delivery results.
  • Radial destruction with constant and linear falloff and deterministic per-target seeds.
  • Opt-in bounded chain propagation with a visited set, depth cap and complete chain diagnostics.
  • Audio and Niagara presentation with deterministic weighted variation and middleware-neutral request delegates.
  • Damage stages, impact decals with a per-object limit and non-breaking hit reactions.
  • Generic loot behaviour: Disabled, ExternalOnly, SpawnLoot and RevealExistingActor.
  • Editor authoring pipeline: Static Mesh preflight, deterministic Voronoi fracture, interior material assignment, runtime profile generation and an optional destructible Actor Blueprint.
  • Wood, Ceramic, Stone and Generic authoring presets with Low, Medium, High and Custom densities.
  • Manifest-based ownership with package fingerprints, drift detection, protected regeneration, durable backups and rollback.
  • Batch Generate, Batch Validate and Batch Regenerate with preflight, sequential execution, cancellation between assets and CSV reporting.

Changed

  • Authoring manifest schema raised to version 3, adding ownership fingerprints for the source mesh, preset, interior material and every generated output. Manifests created before that revision require an explicit adoption step before regeneration is allowed.

Fixed

  • Nothing to report. This is the first tracked pre-release.

Deprecated

  • Nothing deprecated.

Known issues

  • Batch processing is sequential and synchronous. One expensive Geometry Collection fracture can briefly occupy the editor thread until that asset completes or rolls back.
  • One shared preset and option set is applied per batch. Mixed material families should be processed as separate batches.
  • Batch Generate supports the automatic Geometry Collection path only. Automatic extraction of bespoke SwapAndScatter fragment meshes is not implemented.
  • Ownership fingerprints are package-level. They prove a saved package changed, but do not provide a property-by-property semantic diff.
  • Legacy manifests require explicit adoption; ownership is never guessed.
  • Chaos simulation is not claimed to be bitwise deterministic.
  • Unreal Engine 5.7 is targeted for the public release but has not been through the regression suite yet; only 5.8 is validated in this version.
  • Network replication is not implemented or validated. See the FAQ.

World State Reset Framework

Version 1.0.0 2026-09-05 UE 5.7, 5.8 Published on Fab

First non-beta version. The plugin descriptor, save metadata and changelog all read 1.0.0. This version ships the complete Rest Site / Checkpoint module and closes a full independent code audit — every audit finding was fixed, independently verified against the current source, and locked by automated regression tests.

Added — Rest Site / Checkpoint module

  • Rest Sites with persistent Undiscovered -> Discovered -> Activated state, manual/proximity Discovery, manual/interaction/proximity Activation, and central Current Rest Site / Last Activated Rest Site events.
  • The authoritative Activation coordinator with optional Activation presentation, Rest On First Activation, Save On Activation, Open Menu After Activation, and duplicate-save coalescing.
  • Reusable Rest Site Profiles with live linking, effective-configuration export, preloading, and seven explicit Local Override groups: Actions, UI Widget Classes, Audio, Activation Presentation, Rest Presentation, Fast Travel Presentation, and Site Behavior.
  • Native Rest, Fast Travel, and Save actions plus arbitrary project Custom Actions, localizable descriptions, deterministic order, Hidden/Disabled behavior, Gameplay Tag Queries without a GAS requirement, Project Bridge eligibility, execution context, re-entry protection, and event-driven menu refresh.
  • Default Rest Menu and Fast Travel Widget Blueprints, neutral duplication templates, replaceable destination rows, device-aware prompts, configurable UI audio, and official Widget Blueprint fallback.
  • Same-world and cross-world Fast Travel with authoritative eligibility, Current-site rejection, pure project preflight, optional Prepare/Commit/Cancel cost hooks, presentation requests, World Identity validation, streaming waits, separate arrival placement, and exact-once results.
  • Independent Player Respawn Point and Fast Travel Arrival Point transforms, Respawn at Last Activated Rest Site or a specific Rest Site, Player Death reset semantics, Manual Continue alias, and project fallback hooks.
  • Explicit Thumbnail Capture View, scene-based Capture Thumbnail, automatic framing, manual-image protection, configurable 1024 x 576 defaults, and Fast Travel thumbnail fallbacks.
  • Rest Site SaveGame integration with Disabled, Project Save, WSRF Quick Save, and Both modes; one-capture payload reuse; multi-world envelopes; Quick Save / Quick Load; and same-/cross-world return to the saved Last Activated Rest Site without Player Death semantics.
  • Activation, Rest, Fast Travel, Respawn, Quick Load, save, action, UI-class, arrival-transform, Profile, and effective-configuration Health Check diagnostics.
  • Optional audio, VFX, Player Montage, Level Sequence, message, and screen-transition presentation hooks without making any presentation asset mandatory.

Changed — audit hardening

  • Streaming and World Partition identity hardened: deferred restores are claimed only by the owning runtime cell, destroyed Persistent/One Shot Actors stay destroyed across re-streaming, live Persistent state survives stream-out/stream-in, and embedded Level Instance copies of the same source Actor keep distinct effective identities.
  • Operation lifecycle hardened: a project map change during a latent operation now fails the operation cleanly instead of blocking the subsystem, completion events fire after the subsystem returns to Idle so a handler can immediately start the next operation, and prepared Fast Travel costs follow an exact-once Prepare/Commit/Cancel ownership contract.
  • A restored or streamed-in Activated Rest Site re-enables its activation effect actors without replaying activation gameplay, sounds or menus.
  • Custom Fast Travel Widget Blueprints keep their authored destination row class; configuration overrides and the official fallback resolve in a strict, documented precedence.
  • An unscoped full-world reset now requires an explicit opt-in flag; non-fatal restore diagnostics moved to a dedicated warnings channel.

API

  • Added Migrate WSRF Snapshot To Current, a ticket-returning Fast Travel UI request, a detailed Profile-copy API with error output, and live Blueprint setters for built-in interaction, interaction radius and activation effect actors. All additions are additive; the previous APIs remain available as compatibly deprecated wrappers.
  • No save schema, Stable ID, Effective ID or persistent payload format changed. Snapshot schema 3 remains current with automatic migration of schema 1 and 2 data.
Version 0.6.0 2026-08-30 UE 5.7, 5.8 In development — not yet published

Current pre-release state of the framework. The plugin is marked as a beta version in its descriptor and has not been published on Fab yet.

Added

  • World-state subsystem (UWSRFWorldStateSubsystem) with a deterministic, dependency-aware reset pipeline: prepare, remove runtime Actors, respawn missing Actors, restore automatic state, restore attachments, restore custom state, report.
  • FIFO nested resets with queued-result correlation, the pure Was WSRF Reset Successful node, a 64-operation queue-drain safety guard and Game Thread validation of reset and registration calls.
  • UWSRFStateComponent with automatically generated Stable IDs, region membership and reset policy.
  • Seven behaviour presets: Enemy, Boss / Elite for permanent defeat, Breakable Prop, Permanent Shortcut, Unique Pickup, Trap and Runtime Actor, with a preset-first Details panel ordered Quick Setup, Behavior, Advanced.
  • Gameplay Tag regions with optional child-region matching, per-region indexing and editor tag pickers filtered to the WSRF roots.
  • Gameplay Tag reset reasons: Rest, Player Death, Checkpoint, Region, Encounter Restart, Manual.
  • Four-axis FWSRFResetPolicy: reset triggers, persistence mode, restore strategy and runtime-Actor behaviour.
  • Exact-once respawn of genuinely destroyed placed Actors into their original source container, with the Stable ID preserved.
  • Automatic layered component capture for the Scene, Primitive, Static Mesh, Skeletal Mesh, Child Actor and Audio families, plus an optional Niagara adapter module — alongside Actor transform, tags, hidden/collision/tick state, attachment metadata and supported Instance Editable properties.
  • Versioned Custom State: UWSRFStateWriter, UWSRFStateReader and the IWSRFResettable capture/prepare/restore/completed callbacks.
  • Stable-ID dependency restoration with attachment-aware topological ordering, reset priority and a deterministic Stable ID tie-break.
  • World State Inspector: statistics, search, filters, validation, Focus Actor, Copy Stable ID, transactional Assign Missing IDs and Regenerate Selected ID, PIE reset preview and viewport debug visualization.
  • Per-Actor Actor Health Check and one-click right-click setup on level Actors and Actor Blueprints, batched in a single Undo transaction.
  • World Partition support: cookable World Manifest with explicit Build and Validate actions, effective identity (Stable ID plus container context), StreamedOut classification, Pending Restore for unloaded or never-loaded Actors, and orphaned-entry detection at validation.
  • Level Instances, Data Layers and streamed sublevel support, including independent identities for repeated Level Instances.
  • Persistence adapter: pure-data FWSRFWorldStateSnapshot export/import at schema 3, automatic migration of WSRF schema-1 and schema-2 saves, compact Custom State storage, deferred restore for unloaded content, explicit compatibility checks, optional UWSRFSnapshotMigrator for project-owned legacy formats, and structured Applied / Deferred / Skipped / Missing / Failed / VersionMismatch / ConfigurationMismatch reporting.
  • Playable demo map /WorldStateResetFramework/Demo/Maps/L_WSRF_Demo with authored environment content, a Goblin/Boss/Orc enemy trio (including petrification restored by automatic capture) and a small demo SaveGame example, in a removable DeveloperTool module.
  • Real SaveGameToMemory persistence benchmarks for 1,000 and 10,000 records, including a typical-enemy profile.

Changed

  • The State Component Details panel was reorganised into Quick Setup, Behavior and collapsed Advanced sections with plain-language preset descriptions.
  • The Inspector gained a green/orange/red World State Status summary.
  • Generated World Partition cell identities were normalised so never-loaded manifest records rebind exactly on first load.
  • Persistence export no longer measures serialized size unconditionally; the opt-in Measure Serialized Size pin replaces it, reducing export time by 94–96% on the measured profiles.
  • Niagara moved out of the core Runtime into an optional adapter module; the Demo module became a removable DeveloperTool module.

Fixed

  • A missing UStaticMesh definition exposed by the strict-include build in the demo module.
  • The Runtime Actor preset initially omitted the Rest trigger.
  • Transient runtime Stable-ID generation was logged too aggressively.
  • UE 5.8 deprecated the Data Layer API used on UE 5.7; a version-correct compatibility branch was added so both engines build cleanly.
  • Cached importer identifiers retaining a workstation path in the Checkpoint Shrine textures were sanitised at the binary asset level.
  • A 19-item correction pass (completed 2026-08-30) hardened one-shot semantics, callback and record lifetime, queued-reset correlation, capture timing, module structure, demo content, export performance and import diagnostics.

Deprecated

  • Nothing deprecated.

Known issues

  • Network replication is not implemented or validated.
  • SaveGame serialization dominates persistence cost at scale: the worst-case 10,000-record fixture is about 333 MB uncompressed and 2.3–2.6 s each way on the test machine; measured compression reduced payload size by roughly 75–85%. Capture at an explicit save boundary.
  • Automatic capture excludes object graphs, arbitrary UObject properties, arrays, maps, sets and component construction data by design.
  • No dedicated customer-facing World Partition showcase map ships yet.
  • Final seller metadata and a real-world crash test remain outstanding before a Release Candidate.

Type to search titles, sections and keywords.