draw_string()では基本1行しか表示できない。以下のようにするにはテーブルを使う必要がある。

「i」が「list」のテーブル数、valueがテーブルのテキスト。
draw_stringの3番目にテーブルのテキストが上のように自動的に入ることになる。逆に下から入ることに注意が必要。
function Text_draw()
list = {"a","b","c","d"}
for i,value in ipairs(list) do
draw_string( 100, 90+(10*i), i .. ":" .. value, 0, 1, 0)
end
end
do_every_draw("Text_draw()")
こういう方法もある

function Text_draw()
arr = {"赤","黄","青"}
for i = 1 , #arr do
draw_string( 100, 90+(10*i), arr[i], 0, 1, 0)
end
end
do_every_draw("Text_draw()")
上から順番にテキスト表示する

3行目、iにマイナスを付けているのが味噌。
function Text_draw()
for i = 1, 5, 1 do
draw_string(100, 90 + (10 * -i), i, 0, 1, 0) --「 −1」で上から下に表示されるようになる。
end
end
do_every_draw("Text_draw()")