Selecting Montage

How do MontageManagerComponent knows which data table should it use?

Here comes interface I_MontageManagerComponent.
It has 1 function GetMontages which returns data table.
It must be implemented by owner of the component.

Let’s take a look at implementation of this function in BP_CombatCharacter.

To not repeat rows that are common like roll, backstabbed etc. there is 1 common data table that stores those montages.

Why there is a special check for draw / disarm weapon?
Let’s assume character is not in combat (using unarmed data table) but tries to draw weapon (which montage is stored in one handed data table).
In this case returned table should be based on combat type in order to retrieve that montage.