They may be set to strings of characters that represent states (often in unspaced capital letters - just a style recommendation), or to numeric values, eg.
set: mission_myGreatMission_status START_OF_THE_MISSION // mission_myGreatMission_status will be set to the string 'START_OF_THE_MISSION' set: mission_myGreatMission_rewardValue 105.5 // mission_myGreatMission_rewardValue will be set to 105.5 // I might alter this value before I award it as credits at the end of the mission
They should have a unique name that is always prefixed by mission_. A good naming scheme is to use mission_ followed by a unique identifier for your script (for example, fredJamesMission1) followed by an underscore followed by the use to which the variable is being put (for example, _counter1 or _EnemyName).
Mission variables are saved in the player's saved game file.
Good Examples of Mission Variable Names
mission_fredJamesMission_counter1 // might be set to a number that's incremented or decremented every so often mission_trumbles_decisionKey // could be the result of a missionChoice mission_moonShot_stage // could be a phrase describing the current scripted action eg. BEGINNING_MISSION or KILLING_ALIENS or MISSION_COMPLETE
Poor Examples of Mission Variable Names
mission_counter // no mission identifier mission_variable // no mission identifier mission_mymissionisaverycomplexaffairthatImightmisspell_andthisisanequallycomplexvariable // could be easily misspelt or misunderstood
missionVariables.myGreatMission_status = "START_OF_THE_MISSION"; missionVariables["myGreatMission_status"] = "START_OF_THE_MISSION";