No. I'm making a text reading dialog box that word wraps and goes through multiple boxes if the text fed it is longer than 1 box. I need to know how much I can grab from a txt file at once before I impact game performance so I can have a parent object do the bulk of coding, and minimize coding in specific npcs that may talk a lot, or maybe book reading on the long end of things.
answer going to be pretty simple:
the whole text ! (do it at start and your are done with that)
a book is around 60k chars, if ascii its only 1 byte per char (unicode are max 4bytes if my memory is good), that make the whole book to only be 60kb any of your background image weights much more than that. And a good mp3 music files is a few Mb too. Even with the equivalent of a hundred of books we would still only talk about 6Mb !
you are overoptimising something that really don't need any optimisation. (so if it isn't as a learning exercise, forget about batch loading the text. load it all)
what you need to look for isn't the loading of text. Its the drawing. and even not where you think.
because I assume drawing 60k char on screen would hurt (I'm not sure how much - never tried). But as you only draw at max a full screen of char, that shouldn't happen. In fact you even not draw that much char, as you only want to draw the visible text inside your textbox.
so at the end, what you should care of is the UX: ensuring drawing of text is clear as crystal to have a good reading and that the scrolling of text is smooth, fast, reliable.
(and as we have decided we could afford having the whole text in memory, that shouldn't be much of a problem except if you mess up the word wrap, etc... well in fact you shouldn't because GMS has functions to deal with that: draw_text_ext, string_width,etc - and alternatively, if the width size of your textbox is fixed, you could just already have it formated in your text file to fit in)