GAS GameplayEffect Component - Chance to Apply

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