I know because that’s the code for dialogue and narrations, not commands of movement or animations. 
It cannot take place of commanding a character in the script.
The script name of their character is whatever the author decided to name the character upon creating them in the portal which cannot be edited. It’s the name they’ll use to make them do animations e.g @CHARNAME is idle. The script name has no impact on the display name whatsoever. 
They could’ve named the character JACK (or whatever other name) in their script upon creating him, but his display name could be anything. If the author wants to name him JOHN, then they just change the display name to JOHN. That’s what readers would see, but the commands would still use JACK. For reader-insert names though, the display name just has to match the first input name in these brackets: ( ), which in this case is FIRSTNAME and then they only use the block brackets: [ ] for referring to the name in dialogue and narrations such as “Hi, my name is [FIRSTNAME].”
Script name used for commanding that specific character, but appears as whatever the reader typed in if the display name is set to FIRSTNAME.
JACK (sing_warmup_loop) ↲
My new name is [FIRSTNAME]! ↰
Whatever typed in name appears here in dialogue and/or narration. This name will also be the name shown on bubbles if it’s the display name.
Sorry if I’m confusing lmao, I’m actually having a difficult time explaining it. 
Anywayys, I hope it helped.