Skip to content
CISV2.0GET IT ON FAB

REFERENCESTRUCTS AND ENUMS

FCISInteractionObjectSettings

MODULECharacterInteractionSystemINCLUDEComponents/CISInteractionObjectComponent.h

The settings of an interaction object: its sides, its reach and its angle, the input that interrupts a use, the use time, the conditions, the data object class, the choosing priority and the networking options. Set them in the class defaults. They are not replicated: each machine reads its own copy.

Properties

TArray<FCISInteractionObjectSide> InteractionSides

The sides of the object. A side is a range of directions around the object, with its own move handler, its own actions for each state, its action execution type and its debug drawing. A character uses the object from the side it stands in.

Category
Settings
float InteractionDistance = 300.f

The reach of the object: the flat (two-dimensional) distance from the object's actor to the character's feet, within which the object can be used. Default 300.

Default
300.f
Category
Settings
FCISSceneComponentsOnActor AngleDetectionComponent

To detect angle between character forward vector and intaraction object

Category
Settings
bool bOverrideCharacterInteractionAngle = false

Use OverrideCharacterInteractionAngle for this object instead of the character's InteractionAngle. Shown as the checkbox of that row.

Default
false
float OverrideCharacterInteractionAngle = 0.f

The angle, in degrees, that the character must face this object within when bOverrideCharacterInteractionAngle is on. The character faces the object within half of this angle, measured from its forward direction.

Default
0.f
Category
Settings
ECISObjectInterruptionType ObjectInterruptionType = ECISObjectInterruptionType::None

The input that can interrupt a use of this object: None (no input interrupts it), InterruptAfterReleaseButton (the release of the use button) or InterruptAfterSecondPressButton (a second press). TryInterruptObjectUsing interrupts the use only when the types match.

Default
ECISObjectInterruptionType::None
Category
Settings
bool bOverrideObjectUseTime = false

Use OverrideObjectUseTime for this object instead of the character's TimeToUseObject. Shown as the checkbox of that row.

Default
false
float OverrideObjectUseTime = 0.f

The hold time, in seconds, for this object when bOverrideObjectUseTime is on. Otherwise the character's Time to Use Object applies.

Default
0.f
Category
Settings
TArray<UCISInteractionObjectCondition*> VisibleConditions

The conditions that must all pass for the object to be visible to the character (its data object's OnVisibleChanged). The character can use the object only when UsableConditions pass too. An empty list passes. The server also checks again the conditions that validate on the server before it accepts a use.

Category
Settings
TArray<UCISInteractionObjectCondition*> UsableConditions

The conditions that must all pass for the character to use the object. The server checks again the conditions that validate on the server before it accepts a use.

Category
Settings
bool bOverrideDataObjectClass = false

When on, DataObjectClass gives this object its own data object class in place of the character's Data Object Class.

Default
false
Category
Settings
TSubclassOf<UCISInteractionDataObject> DataObjectClass

The data object class that the character uses for this object when bOverrideDataObjectClass is on. Empty: the character's Data Object Class applies.

Category
Settings
int32 ObjectPriority = 0

The score that UCISUseObjectTest_ObjectPriority gives this object, from 0 to 10. It takes part in the choice of the object for use only through the character's Tests to Determine Object for Use.

Default
0
Category
Settings
bool bTransferOwnershipDuringUse = true

During a use the user's controller owns the object's actor; the server gives the previous owner back at the end.

Default
true
Category
Networking
bool bManageOwnerDormancy = false

The object's actor rests dormant (DORM_DormantAll) while nobody uses it; the server wakes it for a use and lets it rest again 1 s after the use. The plugin's own replicated state (object state, usable, in use) still reaches every client (FlushNetDormancy). Off by default. Do not turn it on for an object whose Blueprint or C++ replicates variables or multicasts of its own, whose Blueprints write bUsable directly, or whose dormancy other code sets (MIGRATION.md, "Owner dormancy (bManageOwnerDormancy)").

Default
false
Category
Networking
float MaxUseDuration = 0.f

Longest use in seconds; a longer use ends as interrupted. 0: no limit.

Default
0.f
Category
Settings