GreyFox Studio · Unreal Engine

Souls Destruction Framework

Environmental destruction authoring and runtime framework for Unreal Engine.

  • Unreal Engine 5.7
  • Unreal Engine 5.8
  • C++
  • Blueprint
  • Editor Tools
  • Chaos
  • Geometry Collection
Documentation Changelog Support Fab — coming soon
Souls Destruction Framework plugin cover
  • Status In Development
  • Current version 1.0.0
  • Supported engine versions Unreal Engine 5.7, Unreal Engine 5.8
  • Last updated 2026-09-15
  • Support support@greyfoxstudio.ca

Designed for souls-like, action RPG, dungeon crawler and melee-focused games.

Overview

Souls Destruction Framework (SDF) covers two distinct layers, and either one can be used on its own.

Destruction authoring

An editor-only pipeline that turns an existing Static Mesh into a complete, ready-to-place destructible setup:

Static Mesh -> Choose Preset -> Generate -> Validate -> Play

The source Static Mesh is never modified. Generation stages everything transiently first, validates the result, and only then publishes the assets it owns.

Runtime framework

A data-driven runtime layer that decides what a hit does and how the object presents its destruction. Once an object carries an USDFDestructibleComponent and a destruction profile, it can be destroyed by:

  • melee contacts;
  • roll, dash or charge collisions;
  • projectiles;
  • radial events;
  • chain propagation from another destructible.

No framework lock-in

SDF does not impose a combat system, a projectile class, an inventory system or an audio middleware. Gameplay code sends a plain FSDFDestructionHit payload; the framework answers with an explicit FSDFDestructionResult.

Features

Automatic destruction authoring

  • Static Mesh preflight before anything is written
  • Geometry Collection generation
  • deterministic Voronoi, structure-aware wood and semantic barrel fracture patterns
  • interior material assignment on generated internal faces
  • collision and cooked simulation data validation
  • runtime profile generation, with Max Health exposed directly in the authoring window — a positive value publishes a ready-to-play multi-hit profile
  • optional ready-to-place destructible Actor Blueprint
  • the source mesh remains untouched

Authoring presets

Ten data-driven presets ship with the plugin, plus a custom path:

PresetIntentLow / Medium / High fragments
WoodStructure-aware planar fracture: recovers boards and panels, preserves small hardware, noisy cross-cuts14 / 24 / 36
Wooden CrateWood recipe with convex piece collision for boards that overlap their posts14 / 24 / 36
Wooden Barrel (Semantic)Strict barrel recipe: body cut into radial staves, hoops and end caps preserved14 / 24 / 36
Wooden FurnitureChairs, tables, benches: every member snapped to a target debris length10 / 16 / 26
Wooden CoffinWide wooden panels with shallow break roughness so pieces fall apart instead of interlocking12 / 20 / 32
CeramicMore numerous pieces for shells with real thickness12 / 20 / 32
StoneFewer massive blocks with aggressive micro-fragment control14 / 26 / 42
GlassThin brittle panels, fractured at runtime around the impact — no baked Geometry Collectionpattern-driven
Glass VesselBottles, lanterns, vases: pre-baked Voronoi tuned for glass slivers, preserved cork stoppers24 / 40 / 64
GenericNeutral deterministic Voronoi, no material assumption10 / 18 / 30

Fracture density is selected as Low, Medium, High or Custom (explicit count, 2 – 150). The wood presets also take Cuts Along Length — how many times each board breaks, from 0 (boards stay whole) to 5 — and Wooden Furniture a Collision Shape: boxes for straight boards, convex hulls for curved and leaning pieces such as pews and thrones.

Structural honesty

The wood presets recover the boards, members and hardware that exist as construction parts in the authored mesh; the semantic barrel recipe additionally resolves body, hoops and end-cap roles and blocks unsupported meshes instead of guessing. No preset infers joints or weak points that the source geometry does not carry.

Physics-ready props

New generations simulate physics by default, so a prop rests on its support and falls when that support breaks:

  • smash a crate and the pot resting on it drops to the floor instead of hanging in the air
  • optional height-based fall damage per profile: enabled on Ceramic and Glass Vessel generations, off on Stone and wood — a pot can break on landing while a statue survives
  • a source mesh without usable simple collision gets an SDF-owned simulation copy; the source is never modified
  • existing setups are never converted silently: an explicit editor migration switches them
  • composite glass windows stay fixed by design

Runtime glass fracture

The Glass family does not bake a Geometry Collection. Shards are generated at the moment of impact, around the actual impact point, so the crack pattern follows the blow:

  • radial-and-ring crack pattern with per-hit jitter, deterministic per seed
  • every shard is a real simulated rigid body with convex collision
  • persistent shards by default — they settle where they fall, like every other Souls debris
  • a multi-material source (a stained glass window with its stone surround and lead tracery) is split automatically at authoring: the structure becomes an unbreakable frame, every glass island becomes an independently breakable pane on one ASDFGlassCompositeActor
  • preserved material slots: islands whose material matches a preset keyword (a cork stopper on a bottle) drop whole instead of shattering

Batch authoring

  • Batch Generate, Batch Validate and Batch Regenerate
  • full preflight before the first write
  • explicit Ready / Warning / Blocked state per mesh
  • strictly sequential, safe processing on the editor thread
  • continue-on-error: a blocked or failed row never stops the queue
  • cancellation sampled between assets
  • exported CSV report for every execution

Regeneration safety

  • manifest-based ownership of every generated asset
  • fingerprint-based drift detection on source, preset, interior material and outputs
  • explicit confirmation before any regeneration
  • second confirmation before replacing manually edited outputs
  • durable package backups under Saved
  • rollback when replacement, save or validation fails
  • generated object paths are preserved, so external references stay valid

Modify Destructible

  • change how an existing destructible breaks, right from the level: right-click a placed actor, its Blueprint or its source mesh
  • switch preset, fracture density, cuts along length, collision shape, fragility or health
  • rebuilt in place: every copy already placed in your levels updates, Blueprint graphs are kept
  • debris, projectile, audio and physics choices are preserved
  • same backups, confirmations and rollback as regeneration
  • scriptable with the SDF.ModifyDestructible editor command

Runtime destruction inputs

  • Melee — swing windows with one hit per target per swing
  • Roll / collision — externally detected contacts with a minimum speed gate
  • Projectile — data-driven impact profiles, no imposed projectile class
  • Radial — origin, radius, falloff and deterministic per-target seeds
  • Chain reactions — opt-in bounded propagation with cycle prevention

Presentation

  • audio events: LightImpact, HeavyImpact, Break, DebrisImpact
  • Niagara events: the same four plus Custom
  • deterministic weighted variation selection
  • wood splinters burst from the struck point, take on the broken object’s own texture and never hang in the air — they ignore the debris and land on the real floor
  • middleware-neutral request delegates, emitted even when built-in playback is disabled
  • independent per-frame budgets for built-in audio and built-in VFX

Damage presentation

  • non-breaking hit reactions with optional bounded physics impulse
  • impact decals with a per-object limit
  • damage stages driven by remaining health ratio
  • Static Mesh replacement per stage
  • per-slot material overrides per stage

Performance

  • global cap on simultaneously active Chaos representations
  • budget on kept, settled debris actors (MaxSettledDebrisActors), oldest evicted first
  • per-frame destruction event admission budget
  • automatic Geometry Collection to Swap-and-Scatter fallback
  • centralised, timer-driven debris cleanup that waits for real physical rest — debris is never frozen in mid-air
  • no Actor tick on the destructible Actors; the destructible component ticks only while a profile enables fall damage

Demo content

The plugin ships a complete showcase map, /SoulsDestructionFramework/Demo/Maps/L_SDF_Showcase, with titled stands for every preset family — crates, barrels, furniture, a coffin, ceramic pots, a stone gravestone and statue, glass panes, tinted bottles with preserved cork stoppers, a stained glass window split into frame and panes, and a multi-hit wooden door. All demo content uses only plugin and engine assets.

Requirements

  • Unreal Engine 5.7 — separate edition, verified on 5.7.4 (Win64)
  • Unreal Engine 5.8 — separate edition, verified on 5.8.2 (Win64)
  • Source-only packages: compiled with Unreal’s supported Visual Studio C++ toolchain, including in Blueprint-only projects
  • Epic plugins: Geometry Collection and Fracture (editor), Niagara, Procedural Mesh Component and Enhanced Input — plus Control Rig on the 5.7.4 edition
  • Blueprint-only and C++ projects are both supported

Full details are in the installation guide.

Type to search titles, sections and keywords.