Here is the Screen_output proc now:
Screen_output(txt, /Font/font)
var/Text = font.wrap_text(txt, width_limit+2)
var/list/words = list()
var/word = ""
var/output = ""
for(var/i = 1 to length(Text))
var/c = copytext(Text, i, i + 1)
if(c == " ")
words += word
word = ""
else
word += c
if(word)
words += word
for(var/W = 1 to words.len)
var/text = "[words[W]]"
world << "[words[W]]"
if(findtext(text, "\n"))
add_line(output)
output = ""
else
output += text
output += " "
if(W == words.len)
add_line(output)
Any ideas? I still get the problem where if a word takes up too much of the line it simply doesn't show the line.