You can check the code of UChanceToApplyGameplayEffectComponent
, it’s pretty simple to follow
Make either a child class of it or just follow the same logic to create your own component that is instead reading from SetByCallerMagnitudes. All you have to do is override CanGamplayEffectApply() basically