EDIT: Now supports multiple surfaces. To do it put all the surfaceguis into the main part (the one with the script), set the adornees, and then change the names so that they’re all in order.
This is really cool though, I’ve wanted to try doing something similar but I could never come up with a good way of doing so. You should add in some native text effect support, something along the lines of what runescape had for their text effects maybe. Flashing between colours maybe some movement of letters, that sort of thing. Maybe even go all out and have some sort of effect sequencer.
I think that kind of thing would be more suitable as a ModuleScript library that my model would require. Adding it to the model itself would way over-complicate it imo.