instead of doing:
firstname = result
~this is local (it exists only within the script it is in), to make it be able to be used anywhere, you got to set it to something that exists outside of the script, and since it is for your player's name, that's what you set it to, as the player (as an object) exists outside of your script.
so, if you want to use "firstname", then use this:
player.firstname = result
~OR~
game.pov.firstname = result
~what you've done by this, is to create, "firstname", as an attribute of the player (or game.pov) object, and thus you can call~use~apply this attribute now anywhere you want.
otherwise, do this instead (as "alias" is a pre-set attribute of the player or game.pov already):
player.alias = result
~OR~
game.pov.alias = result
and then change all your other "firstnames" to:
firstname -> player.alias
~OR~
firstname -> game.pov.alias
~OR~
firstname -> player.firstname
~OR~
firstname -> game.pov.firstname
-------
you got a problem with the syntax again (I tell you, syntax is so annoying, lol):
msg ("Ziggy says, \"It is good to meet you,\" + firstname + \"!\"")
it needs to be changed to this:
msg ("Ziggy says, \"It is good to meet you, " + player.alias OR game.pov.alias OR player.firstname OR game.pov.firstname + " ! \" ")
you can't have quotes inside of the:
" + code + "
so:
" " + code + " " = doesn't work, [ unless you got them ( " + code + " ) next to each other ]
" \" + code + \" " = doesn't work (this MAYBE might work, but I highly doubt it, lol)
" ' + code + ' " = doesn't work (probably anyways, maybe it does... but I don't think so)
-----------
you got to have the quotes on the outside of the " + code + ", so it looks like this:
" + code + " " + code + " " + code + " = works
\" " + code + " \" = works
' " + code + " ' = works
------------------
unless you want it there, you don't really need your first "clearscreen" (the line below your playername = result).