using UnityEngine;
namespace HutongGames.PlayMaker.Actions
{
    [ActionCategory(ActionCategory.Effects)]
	[Tooltip("Sets the Start Color of a ParticleSystem using Random Between Two Colors.")]
	public class ParticleSystemSetRandomBetweenTwoColors : ComponentAction<ParticleSystem>
	{
        [RequiredField]
        [Tooltip("The GameObject with the ParticleSystem.")]
        [CheckForComponent(typeof(ParticleSystem))]
        public FsmOwnerDefault gameObject;
        [Tooltip("Color 1 of the Start Color")]
        public FsmColor color1;
        [Tooltip("Color 2 of the Start Color")]
        public FsmColor color2;
        [ActionSection("Repeat")]
        [Tooltip("Repeat every frame. Useful if the color variables are changing.")]
        public bool everyFrame;
        private ParticleSystem currentParticleSystem;
        private ParticleSystem.MainModule main;
        public override void Reset()
        {
            gameObject = null;
            color1 = Color.black;
            color2 = Color.black;
            everyFrame = false;
        }
        public override void OnEnter()
		{
            currentParticleSystem = gameObject.GameObject.Value.GetComponent<ParticleSystem>();
            main = currentParticleSystem.main;
            SetColors();
            if (!everyFrame)
            {
                Finish();
            }
        }
        public override void OnUpdate()
        {
            SetColors();
        }
        private void SetColors()
        {
            main.startColor = new ParticleSystem.MinMaxGradient(color1.Value, color2.Value);
        }
    }
}
Seems to work, any feedback welcome. Cheers!