How should I handle an effect system, tags or modules?

There are 2 approaches I’ve considered using, one is tags and the other is module scripts. I really want to use module scripts for the sake of parameters and cleaner code but tags don’t require an EXTRAORDINARY amount of threads to work properly.

What should I use, and how could I still incorporate the advantages of the other without bad performance?

Hey there, what exactly do you mean by an effect system?

Also, why would a module require an excessive amount of threads?

If you’re talking about a visual effect system, I would use RemoteEvents if the visual effects are necessary and UnreliableRemoteEvents if they’re not. But you should make the client render the visual effect to reduce strain on the server.

1 Like

Do you mean status effects? If so, I’d think a module would be the best.

Hope this type can help explain further:

type StatusEffectDict = {
    [Player]: {
        effects: {{ effect: Effect, timeLeft: number }}
    }
}

where the Effect type can be however you want to store the effect