Variables

From FreeSpace Wiki
Revision as of 16:38, 10 March 2008 by Mustang19 (talk | contribs) (removed statement saying that variables have been around since fs1. they were implemented in retail fs2.)
Jump to: navigation, search

Variables, implemented in retail FS2, can be a powerful FRED tool, although are often more of a convenience than an absolute necessity. FREDers use variables for the same two reasons that programmers do. One, they allow you to easily store pieces of information for later use. Two, they let you avoid hard-coded or "magic" numbers for arguments that you use several times in your mission's events.

Using variables is simple. You can use variables in place of any SEXP argument where you would normally use a string or number. Right-click on the argument in the Events list and look at the three options at the bottom of the menu, Add Variable, Modify Variable, and Insert Variable. Click Add Variable to create a new variable. Modify Variable allows you to change a variable that you've already created. Insert Variable replace the currently selected SEXP argument with the variable of your choice.

Three Types of Variables

There are three types of variables.

Player-persistent: This type of persistent variable is stored in the pilot file. Further, they are stored immediately when they are created/changed from within a mission. This means that any change is going to be there regardless of the later outcome of the mission. Player-persistent variables can be accessed and changed from any campaign played with the same pilot.

Campaign-persistent: These persistent variables are stored in the campaign file, and are only stored when a campaign progresses to a new mission. So if the player is killed or quits during a mission, and changes made to a campaign-persistent variable are not stored.

Network-persistent variables are only relevent in a multiplayer game. They affect all players in the current game. Someone with multiplayer experience, please expand on this.

Fred Zone examples of uses for variables

Example 1

Example 2