All effect fields are public. After changing one effect at runtime, call MarkEffectDirty(EffectId.YourEffect). Use MarkDirty() only when you need a broader refresh.

Use this most of the time

When you change one effect such as Hit Effect, Outline, or Dissolve, call MarkEffectDirty for that effect.

Use full refresh rarely

Use MarkDirty() for wider changes such as variant switches or other full component refresh cases.

Example: damage flash
using UnityEngine;
using FlexiSprite;

public class DamageFlash : MonoBehaviour
{
    [SerializeField] private AnimatedSpriteShader spriteFx;

    public void ShowHitFlash()
    {
        if (!spriteFx)
            spriteFx = GetComponent<AnimatedSpriteShader>();

        spriteFx.hitEffectEnabled = true;
        spriteFx.hitEffectBlend = 1f;
        spriteFx.MarkEffectDirty(EffectId.HitEffect);
    }
}

To find field names, set up the effect in the inspector and use Copy All Active Settings or the per-effect C# copy button.