Do not do it with vars if you’re planning on having more than 10 statuses.
Look into how actor components work.
- create a base actor component
- create a bunch of inherited components off that base (fire / poison / HP regen …)
- each component encapsulated status effect logic (fire spreads, poison ticks, health replenishes …)
- when a comp is created, give it to a world entity (player / mob / world prop)
- the comp reaches out to its owner and modifies what’s needed there
- the comps can destroy themselves or something else can remove them
It’s highly scalable and easy to maintain in the long run.
And nothing stops you from having multiple similar effects affecting the target simultaneously - stacking. You absolutely can have 3 different speed reductions active, each with different duration. That’s not something you can do with a bool / float.