Yeah, I found the characters don't need to be set again when the SpriteFont and Sprite are global. It's just that I accidentally was doing that, since I had it in a "start of layout" event, which is how I ran into the issue, so I thought I'd report it here.
I sent you a PM with some crash-on-exit issues I had found, lucid. It's pretty confusing.
I don't know if that is what you were referring to having looked into. Thank you for the suggestion on "set characters by range", though as seen below in this post, I made my game stop crashing on exit. I wrote some of this, left the forum page open, experimented, and wrote some more.
Oh, and if you want to/need to share those caps with the developers, that's fine of course.
Heey, nice! I was about to ask about the possibility of adding a "set opacity" option so I could make text fade out after it's written, but I see it's already quite possible.
SpriteFont: On last character written
SpriteFont: For Each Character
->> FontAshy Set opacity to 99
FontAshy: FontAshy: Opacity Less than 100
FontAshy: FontAshy: Opacity Greater than 0
Every 50ms: FontAshy Set opacity to FontAshy.Opacity - 1
Ooh, hey, I just stopped my game cap from crashing on exit!
I did it by adding this event:
System: End of application
HUDMessageSF Clear text
HUDMessageSF Set Characters by String "" to start at frame 1
HUDSfontAir Clear text
HUDSfontAir Set Characters by String "" to start at frame 1
HUDSfontEnergy Clear text
HUDSfontEnergy Set Characters by String "" to start at frame 1
HUDSfontJump Clear text
HUDSfontJump Set Characters by String "" to start at frame 1
HUDSfontKeys Clear text
HUDSfontKeys Set Characters by String "" to start at frame 1
Those are all of my SpriteFont objects.