storing my ae code here just in case

classic text fade code. put this on opacity and every text keyframe it'll fade in and out

      fadeTime = .3;

        txt = text.sourceText;
        
        if (txt.numKeys > 0){
          t = txt.nearestKey(time).time;
          if (time < t)
            ease(time,t-fadeTime,t,100,0)
          else
            ease(time,t,t+fadeTime,0,100);
        }else
          value
    

casino slot text. make an expression seletor for this one

      if((textIndex%2)==0){
        selectorValue;}
        else{
        -selectorValue;}
    

typewriter text with a consistent typing rate

    fadeTime = text.sourceText.length*.02;

      txt = text.sourceText;
      
      if (txt.numKeys > 0){
        t = txt.nearestKey(time).time;
        if (time < t)
          ease(time,t-fadeTime,t,100,100)
        else
          ease(time,t,t+fadeTime,0,100);
      }else
        value
    

??? i dont know what this does

      var holdTime = .6;
        seedRandom(Math.floor(time/holdTime), timeless = true);
        random(988,1004);
    

bouncy text

    delay = .04;

    txt = text.sourceText;
    X = txt.nearestKey(time).time
    
    myDelay = delay*textIndex;
    t = (time - X) - myDelay;
    if (t >= 0){
      freq =2;
      amplitude = 130;
      decay = 4.0;
      s = amplitude*Math.cos(freq*t*2*Math.PI)/Math.exp(decay*t);
      [s,s]
    }else{
      value
    } 
    

i guess this one is just bounce in general to be put on any property

    freq = 1;
    decay = 3;
    
    t = time - inPoint;
    startVal = [0];
    endVal = [450];
    dur = 0.1;
    if (t < dur){
      linear(t,0,dur,startVal,endVal);
    }else{
      amp = (endVal - startVal)/dur;
      w = freq*Math.PI*2;
      endVal + amp*(Math.sin((t-dur)*w)/Math.exp(decay*(t-dur))/w);
    }
    

will make an expression that counts up every holdTime seconds to framenum, and then start again from 1. i believe

    var holdTime = 0.4286;
    var framenum = 6;
    var maxTime = holdTime*framenum;
    var x = Math.floor(time/holdTime);
    var y = Math.floor(time/maxTime);
    x - (y * framenum)
    

for when you want to jump to a point in a timeline every X seconds and have it play from the start each time

    var holdTime = 0.4444;
    
    var framenum = 6;
    var maxTime = holdTime*framenum;
    
    var x = Math.floor(time/holdTime);
    var y = Math.floor(time/maxTime);
    
    var countvalue = (x - (y * framenum));
    
    var lengthofprecomps = 1;
    
    var loopCount = x - 436;
    
    var jump = countvalue*lengthofprecomps;
    var countup = (time-startTime) - loopCount*holdTime;
    
    jump + countup;
    

for when you want to jump to a point in a timeline every X seconds and have it play continuously along the same point

    var holdTime = 0.4444;
    
    var framenum = 2;
    var maxTime = holdTime*framenum;
    
    var x = Math.floor(time/holdTime);
    var y = Math.floor(time/maxTime);
    
    var countvalue = (x - (y * framenum));
    
    var lengthofprecomps = 31;
    
    var loopCount = x - 437;
    
    var jump = countvalue*lengthofprecomps;
    var advancetime = time-startTime;
    
    jump + advancetime;