Make An ASCII Poker Chip Stack Arrangement
JavaScript (ES6), 185 177 ... 171 bytes



f=(a,s='')=&gt;(a=(a[0]?a:[...(m='25455')+m+m].map((m,i)=&gt;(a-=(k=a/(v/=m)|0)*v,k*16+i),v=1E9).sort((a,b)=&gt;b-a)).map(n=&gt;n&gt;15&amp;&amp;(s+='SVTILAMCOPYBGRW'[n&amp;15],n-16)),s&amp;&amp;f(a)+`
`+s)


Formatted and commented

(a, s = '') =&gt; (                           // a = bankroll OR array of chip stacks
  a = (                                    // s = string of chip initials for this iteration
    a[0] ?                                 // if 'a' already is an array:
      a                                    // use it as-is
    :                                      // else, 'a' is the bankroll:
      [...(m = '25455') + m + m]           // for each 'm' in [ 2, 5, 4, 5, 5, ... ] (x3)
      .map((m, i) =&gt;                       // v = current chip value = previous value / m
        (                                  // k = floor(a / v) = number of these chips
          a -= (k = a / (v /= m) | 0) * v, // update remaining bankroll: a = a - k * v
          k * 16 + i                       // saved in array: chip index in bits 0-3
        ),                                 // and number of chips in bits 4+
        v = 1E9                            // initial chip value = 1 billion
      )                                    // (1B / 2 -&gt; 500M, 500M / 5 -&gt; 100M, etc.)
      .sort((a, b) =&gt; b - a)               // sort the chip stacks
  )                                        //
  .map(n =&gt;                                // for each chip stack:
    n &gt; 15 &amp;&amp;                              // if there's at least one remaining chip of
    (                                      // this kind:
      s += 'SVTILAMCOPYBGRW'[n &amp; 15],      // append its initial to the string
      n - 16                               // decrement the number of chips in this stack
    )                                      //
  ),                                       // process recursive call if there was at least
  s &amp;&amp; f(a) + '\n' + s                     // one non-empty chip stack (the next lines are
)                                          // appended at the beginning of the final string)


Demo



let f=(a,s='')=&gt;(a=(a[0]?a:[...(m='25455')+m+m].map((m,i)=&gt;(a-=(k=a/(v/=m)|0)*v,k*16+i),v=1E9).sort((a,b)=&gt;b-a)).map(n=&gt;n&gt;15&amp;&amp;(s+='SVTILAMCOPYBGRW'[n&amp;15],n-16)),s&amp;&amp;f(a)+`
`+s)

function update() {
  document.getElementById('o').innerHTML = f(+document.getElementById('i').value);
}
update();
&lt;input id="i" value="1342185143" oninput="update()"&gt;&lt;pre id="o"&gt;&lt;/pre&gt;