Programmatically assigning a Powerup to a user without a duration can never be removed in verse. In UEFN, we have a Pickup() and Clear() function which allows you to apply and remove the powerup from a user.
But in verse, we only have the Pickup() exposed on visual_effect_powerup_device
You’re a legend. Simple and brilliant solution. I was going to use verse to trigger a button to trigger the “clear” function, but this feels way simpler and probably more reliable.
Something I was doing to prevent the vfx bug that I think was working (been like 5 months now, can’t entirely remember) was set the duration to 0.0 and then pickup. If this does work likely could just use a function that checks if they have the powerup, if not it can set it to a very long time, and if they dont set it to 0.0 and pickup. Just can’t set infinite on the device itself.
I’ll test this later because it would reduce the need for more devices if it works. I could have sworn this is what i did to prevent that bug where when eliminating a player that had a vfx pickup it would bug out so I would check if damage was lethal and do this trick to prevent that.
will check a bit later.
Good workaround! But requires to use indexes and won’t work in a dynamic system that doesn’t make use of indexes. A proper Clear() function with an agent parameter should be added into Verse, it’s necessary.