Animated particles are difficult in Torque, but you don't need multiple particle datablocks if you're using the 'animateTexture' method
A way i've worked out animated particles is by referencing multiple particles in the emitter data
datablock ParticleData(shieldArcs1Particle)
{
dragCoefficient = 5.0;
gravityCoefficient = -0.0;
inheritedVelFactor = 0.0;
constantAcceleration = 0.0;
lifetimeMS = 50;
lifetimeVarianceMS = 0;
useInvAlpha = false;
textureName = "./electric_arcs1";
colors[0] = "1 0.9 0.4 1";
colors[1] = "1 0.9 0.4 1";
colors[2] = "1 0.9 0.4 1";
colors[3] = "1 0.9 0.4 1";
sizes[0] = 1;
sizes[1] = 1;
sizes[2] = 1;
sizes[3] = 1;
times[0] = 0.0;
times[1] = 0.3;
times[2] = 0.7;
times[3] = 1.0;
};
datablock ParticleData(shieldArcs2Particle : shieldArcs1Particle)
{
lifetimeMS = shieldArcs1Particle.lifetimeMS;
textureName = "./electric_arcs2";
};
datablock ParticleData(shieldArcs3Particle : shieldArcs1Particle)
{
lifetimeMS = shieldArcs1Particle.lifetimeMS;
textureName = "./electric_arcs3";
};
datablock ParticleData(shieldArcs4Particle : shieldArcs1Particle)
{
lifetimeMS = shieldArcs1Particle.lifetimeMS;
textureName = "./electric_arcs4";
};
datablock ParticleEmitterData(shieldArcsEmitter)
{
ejectionPeriodMS = 10;
periodVarianceMS = 0;
ejectionVelocity = 0;
ejectionOffset = 0;
velocityVariance = 0;
thetaMin = 89;
thetaMax = 90;
phiReferenceVel = 0;
phiVariance = 360;
overrideAdvance = false;
particles = "shieldArcs1Particle" TAB "shieldArcs2Particle" TAB "shieldArcs3Particle" TAB "shieldArcs4Particle";
};