Not direct answer regarding multiple components, but you can have component with an array/list, which can be treated kind of like multiple same components.
Its perfectly fine, but if you have to put more than like 2-3 of the same thing, perhaps consider condensing them into a single component that has a public enum that allows you to switch what “type” it is.
So if it was a damage status effect component, instead of having ParalyzeComponent, BleedingComponent, BurnedComponent etc
You would have DamageStatusEffectComponent which would contain logic for all 3, with the public enum allowing you to switch which logic to actually use.
Something like:
public class DamageStatusEffect : Monobehaviour
{
public enum StatusType
{
Paralyze,
Bleed,
Burned
}
// use this via inspector to switch the type
public StatusType statusType;
public void Execute()
{
if(statusType == StatusType.Paralyze)
{
// do something
}
else if(statusType == StatusType.Bleed)
{
// do something else
}
else if(statusType == StatusType.Burned)
{
// do something else
}
}
}
Note that is just an example and is written freehand so likely to produce errors.