Instance Damage System

Instance Damage System

FAB

:movie_camera: | V2 Update Showcase | Showcase | IDS + TPWCS2 |
:mortar_board: | V1 Tutorial | Quickstart | Docs | API Reference | Changelog | V1 to V2 Upgrade |
:link: | Demo | Example Project |
:globe_with_meridians: | Forum | Discord | Orbital Market |

Instance Damage System lets you interact with instanced static meshes in an open world fashion!

This is a perfect solution for GTA style destruction/interaction with respawning props or any resource collection game.

Features:

  • Register any static mesh component based object as proxy (primarly intended for ISMCs but supports any base SMC with the ability for adding support to any other UE object class in C++)
  • Define damage settings per damage asset (static mesh asset used by the proxy ISMC)
  • Spawn destructibles in place of proxy instances (ISMC instances)
  • Hide/unhide proxy instances
  • Respawn proxy instances over time depending on the distance to the player
  • Pool destructibles (reuse already spawned objects)*
  • World Partition support (hide/unhide instances even when the proxy isn’t present in the level!)
  • Setup custom data per each damage asset (exp, money, etc.)
  • Network Replication with three replication modes
    • Client Authoritative: only clients spawn destructible; server detects damage and sends it to other clients
    • Client Replicated: clients spawn destructibles as a result of replication
    • Server: destructible actors are responsible for replication
  • Save and load proxy visibility state
  • Easy setup through data tables
  • Exposed to blueprints - easy scripting anywhere within your project
  • C++ extendible - add new features or override default ones with the provided subsystem and its virtual functions
  • Example project with minigames build around the system:
    • Chaos minigame (recreation of Saints Row’s Mayhem activity)
    • Destruction minigame (destroy a random instance amount of 3 randomly picked meshes)
    • Wanted Level example (get wanted stars depending on the amount of damage done)

*Disabled on chaos based destructibles in the example project as there’s no way to reset a geometry collection to its initial state (at least yet)