IDS2_API_Reference

IDS2_API_Reference

Classes



C++
IDSDamageableISMC
IDS
Damageable foliage class setup to be used with Instance Damage System plugin Can be used directly on foliage or added as a component to actors in blueprints bComponentReplicates has to be set to true for replication only if the component is spawned during runtime, otherwise replication is working on meshes placed in the levels only (for example through the UE foliage system)
C++
IDSDestructibleInterface
## UInterface cannot be documented ##
C++
IDSDestructionObjectInterface
## UInterface cannot be documented ##
C++
IDSDeveloperSettings (Instance Damage)
IDS
Configure the Instance Damage plugin
C++
IDSFunctionLibrary
IDS
Instance Damage System utility functions
C++
IDSReplicationProxyComponent
IDS
Component responsible for proxy instance visibility replication
C++
IDSSubsystem (Instance Damage Subsystem)
IDS
Central managing point of the plugin

Structs


FIDSDamageInfo
Proxy damage settings These settings define how proxy instances react when they are interacted (damaged) with Defined per damage asset (eg. a static mesh asset) which proxy objects use when interacted with (eg. an instanced static mesh component)
Properties:
TSoftObjectPtr<UObject> DamageAsset The asset the to apply these settings to By default only static mesh asset is supported Eg. the settings will apply to objects registered within the subsystem that return this asset For example an instanced static mesh component
TSoftClassPtr<UObject> DestructibleClass The destructible to spawn in place of an instance. By default an actor class is supported only. Override subsystem SpawnDestructibleFromClass function to handle more cases
bool PreloadDestructibleClass Whether the actor class should be loaded into memory whenever an instanced mesh is valid NOTE: this option only works with Damageable ISMC class
float DamageThreshold Damage an instance can take before switching to a destructible. Applies to point/radial damages
double HitForceThreshold Hit force needed to switch to a destructible. Applies to physics (overlap/hit) damages
int32 PoolSize Amount of destructibles that can be in the world at once. Spawned destructibles are reused. Set to <= to disable pooling
bool DestroyifFailedtoPool Whether to destroy destructibles that failed to be reused from the pool
EIDSDestructibleRemovalHandling RemovalHandling Defines how to handle the removal of the destructibles
float UnrenderedRemovalSafeDistance Destructible removal safe distance for non rendered destructibles
double RemovalDistance Squared distance from the player at which a destructible can be removed from the world
float LifeSpan Life span of the spawned destructibles independent of the RemovalHandling setting. Reset when reused from the pool
bool OverrideNetworkingMode Whether to override the project settings default networking mode for this specific damage setup
EIDSDestructibleNetworkingMode NetworkingModeOverride
bool NetworkCanAdjustDestructibleLocation Whether the spawned destructible can be adjusted if it's spawned inside the object that caused destruction. Applies to registered destruction objects that are set to sweep replicated transform
EIDSInstanceHidingMode InstanceHidingType Defines how proxy instance hidings is handled
float HiddenOffset Location Z offset of the instance when hiding type is set to Offset
double RespawnDistance Squared distance from the player to an instance at which the destroyed instance can be respawned
TArray RespawnBlockTypes An instance won't respawn if any object of this type is overlapping the spawn spot
float RespawnBoundsMultiplier Multiplies the mesh bounds used for checking if anything blocks instance respawn
float DestructibleBoundsCheckTolerance Whether to check destructible bounds to see if they changed enough to consider the destructible as visually damaged. Set to < 0 to disable
TArray RadialDmgPreventionTypes Object types that prevent instances from getting damaged by fake radial damage
FGameplayTagContainer Tags
TMap TagAttributes Custom attributes like exp, money etc.
FDataTableRowHandle CustomData
FIDSDestructibleInfo
Holds information about a single destructible
Properties:
FIDSProxyInstance ProxyInstance The proxy instance the destructible was spawned in place for
TSoftObjectPtr<UObject> DamageAsset The hit proxy' damage asset
bool ImplementsInterface Whether the destructible implements the destructible interface
FBoxSphereBounds InitialBounds Bounds cached during spawning
FIDSDestructibleInstance
Identifies a destructible instance
Properties:
TObjectPtr<UObject> DestructibleObject The spawned object
int32 ID Optional ID - this is NOT the proxy instance index
FIDSDestructiblePool
Holds the spawned destructibles
Properties:
TMap PerInstanceMap
FIDSDestructiblePoolContainer
Container that holds the destructible pools and destructible info for each destructible instance
Properties:
TMap Pools
TMap Infos
FIDSDestructibleSpawnParams
Destructible spawn settings
Properties:
UClass* Class
FTransform SpawnTransform
AActor* Owner
APawn* Instigator
ESpawnActorCollisionHandlingMethod CollisionHandlingOverride
FIDSDestructionObjectDetectionParams
Settings used by destruction objects to detect proxy instances around them
Properties:
float MassOverride Mass is sourced from detection bodies by default. Set this to >= 0.0 to override it
float LinearHitForceMultiplier Force multiplier for linear force. Give a high value to make destruction easier
float AngularHitForceMultiplier Force multiplier for angular force
bool DetectFwdandUpOnly Limits detection axis to forward and up only
FVector BoundsOriginOverrideOffset Center offset override for custom bounds
FVector BoundsOverride Detection bounds override
bool RotationAlignedBounds Whether the detection box is aligned to the object's rotation
EIDSDestructionObjectTagFilterType ComponentTagFilter Whether we detect proxies using tagged components only or we exclude them
FName ComponentTag
float DetectionBoundsScale Detection bounds size multiplier
float SpeedOffset Detection trace is offset dynamically in the actor's velocity direction. This value defines how big the offset is
FIDSDestructionObjectInfo
Current information about an object that can cause destruction
Properties:
FIDSDestructionObjectParams Params
FIDSObjectWithID DestructionObject The object that owns the primitives and/or FBodyInstances that can cause destruction
TWeakObjectPtr<AActor> DestructionActor Destruction object cast as an actor (most common case)
double HitForceThreshold Cached from last hit proxy damage setup
bool CollidingwithProxies Whether the actor currently can block destructible proxy collisions (not enough force to damage destructibles)
float Mass Current calculated mass
double CurrentHitForce Current calculated force
FVector BoundsOrigin Current detection bound world origin
FVector BoundsExtent Current detection bound size
FVector BoundsLocalOffset Current detection bounds local origin offset
bool ImplementsDestObjectInterface Whether the object implements destruction object interface
FTransform PrevRepTransform Cached previous frame transform
bool ShouldUpdate Whether the object should be updated this frame
bool LastDetectionSuccesful Whether we detected anything the last time detection was triggered
TSoftObjectPtr<UObject> LastDamageAssetHit
TWeakObjectPtr<UPrimitiveComponent> LastInstMeshHit
int32 LastInstanceHit
FTransform Transform Current transform of the object. It may be the replicated transform
FTransform LocalTransform Actual transform of the object
FVector LinearVelocity
FVector AngularVelocity
bool Teleported Whether the object teleported last frame
FVector DetectionPoint The point used to find the closest proxy detected. Offset depending on velocity
bool SimulatingDestruction Whether the object is currently simulating destruction (network)
float CurrentTick
FIDSDestructionObjectNetworkParams
Destruction object network settings
Properties:
EIDSSimulatedProxyDestructionMode SimulatedProxyDestructionMode How do we treat the actor if it is a simulated proxy in a networked game
float SweepTrMinHitForceMultiplier Don't simulate destruction if current force is smaller than the force required to cause destruction multiplied by this value
float SweepTrMaxHitForceMultiplier Don't simulate destruction if current force is bigger than the force required to cause destruction multiplied by this value
float SweepTrSquaredErrorToleranceforMinForce Allow destruction simulation below the threshold set by SweepTrMinHitForceMultiplier if the squared difference between local and replicated transform is bigger than this
FIDSDestructionObjectOptimizationParams
Destruction object optimization settings
Properties:
bool SkipNarrowPhase If true we'll only detect proxies based on bounding boxes (it is recommended to be true since proper collision detection is handled later anyway)
bool UseSimpleCollisionToggle Whether to update collision response by modyfing the FBodyInstances directly. Does not work properly with skeletal mesh components so eg. if a car is made of static meshes only or the user handles FBodyInstance creation manually this can be set to true If set to false the response is set on the primitives AND the FBodyInstances have to be rewelded every time we change response which is expensive
EIDSDestructionPrimCachingRule PrimitiveCachingRule Whether to cache destruction primitive list as an optimization. If set to cache the user has to mark the list dirty whenever a component is added or removed to/from the object
FVector2D TickThrottleTickRange Changes update rate depending on the object's speed X: max update rate when throttled at min speed Y: max update rate when throttled at max speed Set X to <= 0.0 to disable throttling (will update every frame)
FVector2D TickThrottleSpeedRange Changes update rate depending on the object's speed X: min speed Y: max speed
FIDSDestructionObjectParams
Destruction object settings
Properties:
FIDSDestructionObjectDetectionParams DetectionParams
FIDSDestructionObjectOptimizationParams OptimizationParams
FIDSDestructionObjectNetworkParams NetworkParams
FIDSHiddenInstancesContainer
Holds and manages lists of hidden instances per proxy
Properties:
FIDSHiddenInstancesInfo
Holds a list of hidden instances for a proxy
Properties:
TSet InstanceIndexes Hidden instances
FIDSNonSetupProxyInfo
Info about proxies whose classes are not setup for damage like DamagableISMC. Used as a workaround to support default ISM/HISM classes
Properties:
TSoftObjectPtr<UObject> Proxy
bool Alive Whether the proxy is currently valid
FIDSObjectWithID
Identifies a single UE object usually an actor instance ID is optional but can be useful for identifying a different object eg. an FBodyInstance inside a primitive component
Properties:
TWeakObjectPtr<UObject> Object
int32 ID Optional ID
FIDSProxyInstance
Identifies a single proxy instance, eg. a single instance of an UInstancedStaticMeshComponent
Properties:
int32 InstanceIndex
FIDSProxyInstanceInfo
Holds additional information about a proxy instance
Properties:
float Damage Current damage value
FIDSSavedHiddenInstancesContainer
Save friendly hidden instance data
Properties:
TArray InstanceInfo
FIDSSavedHiddenInstancesInfo
Save friendly instance list
Properties:
TSoftObjectPtr<UObject> Proxy
TSet InstanceIndexes
FIDSSubsystemTickFunction
IDS Subsystem tick function
Properties:
FIDSUpdatedProxies
Holds references to all registered proxies the system manages
Properties:

Enums


EIDSDestructibleNetworkingMode
Defines how destructibles are replicated
ClientAuthoritative
ClientReplicated
Server
EIDSDestructibleNetworkingMode_MAX (EIDSDestructible Networking Mode MAX)
EIDSDestructiblePoolingResult
Type of result after destructible spawn request
Failed
AlreadySpawned
DedicatedServerDummy
Reused
SpawnedNew
EIDSDestructiblePoolingResult_MAX (EIDSDestructible Pooling Result MAX)
EIDSDestructibleRemovalHandling
Defines how to handle the removal of destructibles from the world
RemoveIfOutOfRange
RemoveIfOutOfRangeOrNotRendered
AlwaysRemove
NeverRemove
EIDSDestructibleRemovalHandling_MAX (EIDSDestructible Removal Handling MAX)
EIDSDestructionObjectTagFilterType
Used to filter destruction components
OnlyTaggedComponents
ExcludeTaggedComponents
EIDSDestructionObjectTagFilterType_MAX (EIDSDestruction Object Tag Filter Type MAX)
EIDSDestructionPrimCachingRule
Defines whether the object can cache primitive list (optimization) If set to cached the user has to mark the object dirty whenever a destruction body (component) is added or removed from the object
Cached
Dirty
NeverCache
EIDSDestructionPrimCachingRule_MAX (EIDSDestruction Prim Caching Rule MAX)
EIDSInstanceHidingMode
Defines how to handle instance hiding
Nothing
OffsetZ
ScaleToZero
OpacityMaskAndBodyInstanceCollisionToggle
Custom
EIDSInstanceHidingMode_MAX (EIDSInstance Hiding Mode MAX)
EIDSInstanceVisibilityInstigatorType
Identifies the action responsible for toggling instance visibility
None
SystemReset
MarkRenderDirty
Respawn
WorldActor
UndamagedSwitch
Replication
ForceUpdate
SaveRestore
UnregisteredMesh
DeferredReplication
IndexUpdateRemoved
IndexUpdateRelocated
IndexUpdateCleared
EIDSInstanceVisibilityInstigatorType_MAX (EIDSInstance Visibility Instigator Type MAX)
EIDSSimulatedProxyDestructionMode
Defines how destruction is handled by simulated proxy destruction objects on client authority destructibles
Default
SweepReplicatedTransform
EIDSSimulatedProxyDestructionMode_MAX (EIDSSimulated Proxy Destruction Mode MAX)