<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.pioneerspacesim.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Philbywhizz</id>
	<title>PioneerWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.pioneerspacesim.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Philbywhizz"/>
	<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/wiki/Special:Contributions/Philbywhizz"/>
	<updated>2026-07-09T05:14:55Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Model_viewer&amp;diff=403</id>
		<title>Model viewer</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Model_viewer&amp;diff=403"/>
		<updated>2012-12-13T03:31:32Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: Added info about Option-Click launch for OSX&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To enter modelviewer mode, launch the game with:&lt;br /&gt;
&lt;br /&gt;
 pioneer -mv &amp;lt;optional model name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''OSX Only:'' Hold down the Option key while clicking on the pioneer.app icon to launch the model viewer instead of the game.&lt;br /&gt;
&lt;br /&gt;
= Hotkeys =&lt;br /&gt;
&lt;br /&gt;
Esc: Quit&lt;br /&gt;
&lt;br /&gt;
Tab: Toggle UI&lt;br /&gt;
&lt;br /&gt;
PrintScr: Screenshot&lt;br /&gt;
&lt;br /&gt;
Space: Reset camera view + thruster sliders&lt;br /&gt;
&lt;br /&gt;
G: Cycle grid mode&lt;br /&gt;
&lt;br /&gt;
R: Randomize colour sliders&lt;br /&gt;
&lt;br /&gt;
Z: Toggle wireframe mode&lt;br /&gt;
&lt;br /&gt;
Camera view presets are like Blender:&lt;br /&gt;
&lt;br /&gt;
* Numpad 1 - Front view&lt;br /&gt;
* Ctrl+Numpad - Rear view&lt;br /&gt;
* Numpad 3 - Right view&lt;br /&gt;
* Ctrl+Numpad 3 - Left view&lt;br /&gt;
* Numpad 7 - Top view&lt;br /&gt;
* Ctrl+Numpad 7 - Bottom view&lt;br /&gt;
* Numpad2/4/6/8: Rotate view&lt;br /&gt;
&lt;br /&gt;
[[Category:Art]]&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Escape_Capsules&amp;diff=319</id>
		<title>Escape Capsules</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Escape_Capsules&amp;diff=319"/>
		<updated>2012-11-08T00:42:45Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: 2nd link fixed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Escape capsules should deploy automatically, or on demand by the player. Depending on the possibility of multiple ship ownership, the abandoned ship might still be retained as player property, and if there is an autopilot or pilot (see [[Idea Crew|crew]]) on board the player could ask it to land.&lt;br /&gt;
&lt;br /&gt;
Some thoughts about escape capsules:&lt;br /&gt;
&lt;br /&gt;
* If the player ejects, the enemy ships should not in general continue to attack the player, unless they are being attacked as part of a contract killing directed at the player (not a passenger).&lt;br /&gt;
* There should be a small risk that the attacker shows no remorse, and attacks or scoops up the player as slaves (game over).&lt;br /&gt;
* A call for help could result in being scooped up for rescue by a friendly ship (GalCop or otherwise). Player is scooped, then sees the view from the rescue ship as it autopilots to a base. The player cannot interact with or control the rescue ship.&lt;br /&gt;
&lt;br /&gt;
== Escape capsule options ==&lt;br /&gt;
&lt;br /&gt;
There should be more than one brand of escape capsule available. Here is an outline of some possible options:&lt;br /&gt;
&lt;br /&gt;
* Basic escape capsule. No autopilot fitted, low thrust.&lt;br /&gt;
* Advanced escape capsule. Autopilot included, high thrust.&lt;br /&gt;
* Explorer class escape capsule. Fitted with a hyperdrive (perhaps class 0 or range-limited somehow) and the amount of fuel required to use it (probably one tonne).&lt;br /&gt;
* Built-in escape capsule. Whatever type it is, you can't fit another or remove this one. It's an integral component of the ship.&lt;br /&gt;
&lt;br /&gt;
== Insurance policy ==&lt;br /&gt;
&lt;br /&gt;
'''This could be coded in Lua.'''&lt;br /&gt;
&lt;br /&gt;
In Elite and Frontier, escape capsules came with an insurance policy. It might be better if these were bought and maintained separately.&lt;br /&gt;
&lt;br /&gt;
Without an insurance policy, the player is left flying an escape capsule around. The player still has access to his money. Depending on the cost of the insurance, the following terms might be applied:-&lt;br /&gt;
&lt;br /&gt;
* Time. An insurance policy might be valid:&lt;br /&gt;
** Perpetually&lt;br /&gt;
** Until compensation is claimed (ie, the pilot ejects and lands)&lt;br /&gt;
** Until a specified date (one, five or ten years from purchase)&lt;br /&gt;
* Schedule. An insurance policy might replace the escape capsule when the player lands, with the following:&lt;br /&gt;
** A ship of the type that the player was flying at the time of ejection&lt;br /&gt;
** A ship of the type that the player was flying when the player bought the policy&lt;br /&gt;
** A specified ship, regardless of whether the player has ever owned or flown that ship&lt;br /&gt;
** Optionally, compensation for the value of contents in the hold&lt;br /&gt;
** Optionally, provision of temporary skeleton crew (see [[Idea Crew|crew]] indenture).&lt;br /&gt;
&lt;br /&gt;
== Escape capsules that don't contain the player ==&lt;br /&gt;
&lt;br /&gt;
A player should be able to scoop up an escape capsule. On scooping, the player should choose whether to keep the occupant captive (becomes 1t slaves, as in Frontier) or to rescue the occupant. A rescued pilot can be delivered to any spaceport, and on landing will thank the player. There is a non-zero chance of compensation or faction reputation change. An additional option is that the rescued party might join the crew, if there is space on board.&lt;br /&gt;
&lt;br /&gt;
=== Multiple escape pods ===&lt;br /&gt;
&lt;br /&gt;
Large ships may have the capacity for numerous escape pods (perhaps of varying types). As the ship gets damaged, crew may elect to eject in pods. Pods of varying types may accept various numbers of crew (including the player) and may take a certain amount of time to launch - this allows fleeing crew to 'double up'; a pod that is preparing to launch will fill up before crew get into empty pods. It is entirely possible that pods are not left for the player.&lt;br /&gt;
&lt;br /&gt;
=== Passengers ===&lt;br /&gt;
&lt;br /&gt;
Passenger cabins could (or should?) double up as escape capsules. Perhaps onlt the more expensive ones; this might affect a passenger's willingness to travel with the player's ship, and would certainly affect the player's reputation in the event of catastrophe.&lt;br /&gt;
&lt;br /&gt;
== Persistent ships / hulks / wrecks ==&lt;br /&gt;
&lt;br /&gt;
Ejecting does not destroy the parent ship. Some ships may be towed and reclaimed or redocked with and possibly flown. A ship might contonie to operate after the player ejects, if it has a competent crew.&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Escape_Capsules&amp;diff=318</id>
		<title>Escape Capsules</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Escape_Capsules&amp;diff=318"/>
		<updated>2012-11-08T00:40:45Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: Fixing up document linking&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Escape capsules should deploy automatically, or on demand by the player. Depending on the possibility of multiple ship ownership, the abandoned ship might still be retained as player property, and if there is an autopilot or pilot (see [[Idea Crew|crew]]) on board the player could ask it to land.&lt;br /&gt;
&lt;br /&gt;
Some thoughts about escape capsules:&lt;br /&gt;
&lt;br /&gt;
* If the player ejects, the enemy ships should not in general continue to attack the player, unless they are being attacked as part of a contract killing directed at the player (not a passenger).&lt;br /&gt;
* There should be a small risk that the attacker shows no remorse, and attacks or scoops up the player as slaves (game over).&lt;br /&gt;
* A call for help could result in being scooped up for rescue by a friendly ship (GalCop or otherwise). Player is scooped, then sees the view from the rescue ship as it autopilots to a base. The player cannot interact with or control the rescue ship.&lt;br /&gt;
&lt;br /&gt;
== Escape capsule options ==&lt;br /&gt;
&lt;br /&gt;
There should be more than one brand of escape capsule available. Here is an outline of some possible options:&lt;br /&gt;
&lt;br /&gt;
* Basic escape capsule. No autopilot fitted, low thrust.&lt;br /&gt;
* Advanced escape capsule. Autopilot included, high thrust.&lt;br /&gt;
* Explorer class escape capsule. Fitted with a hyperdrive (perhaps class 0 or range-limited somehow) and the amount of fuel required to use it (probably one tonne).&lt;br /&gt;
* Built-in escape capsule. Whatever type it is, you can't fit another or remove this one. It's an integral component of the ship.&lt;br /&gt;
&lt;br /&gt;
== Insurance policy ==&lt;br /&gt;
&lt;br /&gt;
'''This could be coded in Lua.'''&lt;br /&gt;
&lt;br /&gt;
In Elite and Frontier, escape capsules came with an insurance policy. It might be better if these were bought and maintained separately.&lt;br /&gt;
&lt;br /&gt;
Without an insurance policy, the player is left flying an escape capsule around. The player still has access to his money. Depending on the cost of the insurance, the following terms might be applied:-&lt;br /&gt;
&lt;br /&gt;
* Time. An insurance policy might be valid:&lt;br /&gt;
** Perpetually&lt;br /&gt;
** Until compensation is claimed (ie, the pilot ejects and lands)&lt;br /&gt;
** Until a specified date (one, five or ten years from purchase)&lt;br /&gt;
* Schedule. An insurance policy might replace the escape capsule when the player lands, with the following:&lt;br /&gt;
** A ship of the type that the player was flying at the time of ejection&lt;br /&gt;
** A ship of the type that the player was flying when the player bought the policy&lt;br /&gt;
** A specified ship, regardless of whether the player has ever owned or flown that ship&lt;br /&gt;
** Optionally, compensation for the value of contents in the hold&lt;br /&gt;
** Optionally, provision of temporary skeleton crew (see [[Idea.Crew|crew]] indenture).&lt;br /&gt;
&lt;br /&gt;
== Escape capsules that don't contain the player ==&lt;br /&gt;
&lt;br /&gt;
A player should be able to scoop up an escape capsule. On scooping, the player should choose whether to keep the occupant captive (becomes 1t slaves, as in Frontier) or to rescue the occupant. A rescued pilot can be delivered to any spaceport, and on landing will thank the player. There is a non-zero chance of compensation or faction reputation change. An additional option is that the rescued party might join the crew, if there is space on board.&lt;br /&gt;
&lt;br /&gt;
=== Multiple escape pods ===&lt;br /&gt;
&lt;br /&gt;
Large ships may have the capacity for numerous escape pods (perhaps of varying types). As the ship gets damaged, crew may elect to eject in pods. Pods of varying types may accept various numbers of crew (including the player) and may take a certain amount of time to launch - this allows fleeing crew to 'double up'; a pod that is preparing to launch will fill up before crew get into empty pods. It is entirely possible that pods are not left for the player.&lt;br /&gt;
&lt;br /&gt;
=== Passengers ===&lt;br /&gt;
&lt;br /&gt;
Passenger cabins could (or should?) double up as escape capsules. Perhaps onlt the more expensive ones; this might affect a passenger's willingness to travel with the player's ship, and would certainly affect the player's reputation in the event of catastrophe.&lt;br /&gt;
&lt;br /&gt;
== Persistent ships / hulks / wrecks ==&lt;br /&gt;
&lt;br /&gt;
Ejecting does not destroy the parent ship. Some ships may be towed and reclaimed or redocked with and possibly flown. A ship might contonie to operate after the player ejects, if it has a competent crew.&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=317</id>
		<title>Pioneer Wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=317"/>
		<updated>2012-11-08T00:35:51Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: Linking to the Core Team Page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pioneer is a space adventure game set in the milkyway galaxy at the turn of the 31st century. The game is open-ended, and you are free to explore the millions of star systems in the game. You can land on planets, slingshot past gas giants, and burn yourself to a crisp flying between binary star systems. &lt;br /&gt;
&lt;br /&gt;
* [http://pioneerspacesim.net/download Download Pioneer] for Windows, Linux and Mac OSX&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/pioneerspacesim/files/nightly/ Development Builds] (warning, may be more unstable than a release) &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Please make this wiki nice. Add stuff about mods, dev, whatever. Be awesome! [[Getting started|How to get started]].&lt;br /&gt;
&lt;br /&gt;
And write a nice front page and get rid of this, ok? :)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
{|width=100%&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#bbffbb; border:2px solid #99ee99;  padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Community===&lt;br /&gt;
* [http://pioneerspacesim.net/ Pioneer Space Sim Homepage]&lt;br /&gt;
* [http://pioneerspacesim.net/forum Forums]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [[Keyboard and mouse controls]]&lt;br /&gt;
* [http://twitter.com/pioneerspacesim @pioneerspacesim] on Twitter&lt;br /&gt;
* [[Media Coverage]]&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#f0f0ff; border:2px solid #c6c9ff; padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
===Content Creation===&lt;br /&gt;
* [[Mods]]&lt;br /&gt;
* [[Introduction to Mission Scripting]]&lt;br /&gt;
** [[Interacting with the game: Event-based programming]]&lt;br /&gt;
** [[Interacting with the player: BBS forms]]&lt;br /&gt;
** [[Surviving a reload]]&lt;br /&gt;
* [http://eatenbyagrue.org/f/pioneer/codedoc/ LUA API Reference]&lt;br /&gt;
* [[Music]]&lt;br /&gt;
* [[Sound Effects]]&lt;br /&gt;
* [[Translations]]&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#fff3f3; border:2px solid #ffc9c9; padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Development===&lt;br /&gt;
* [[Design Scope|Game Scope]]&lt;br /&gt;
* [[Getting Started with Development]]&lt;br /&gt;
** [[Core Team]]&lt;br /&gt;
* [[Development Model]]&lt;br /&gt;
* [[Design_Workflow|Design and Project Management Workflow]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pioneer is brung to you by a flock of [https://github.com/pioneerspacesim/pioneer/blob/master/AUTHORS.txt opensource beardy-weirdies], and is [http://www.gnu.org/licenses/gpl.html Free Software]&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Translations&amp;diff=85</id>
		<title>Translations</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Translations&amp;diff=85"/>
		<updated>2012-09-11T13:14:04Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: Imported from github wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pioneer aims to be internationalized. To this end, there is support for multiple languages in Pioneer. This document specifies how the languages are defined, and how somebody can translate Pioneer to a new one.&lt;br /&gt;
&lt;br /&gt;
Localization is not a current aim. The game is set in the distant future; any cultural conventions will be drawn from the fictional premise of the game.&lt;br /&gt;
&lt;br /&gt;
There are two translation systems. The first is for the core game engine. The second is for those parts of the game which are implemented in Lua.&lt;br /&gt;
&lt;br /&gt;
==Core engine translation==&lt;br /&gt;
Pioneer selects its languages dynamically, at run time. The languages are defined in files in data/lang. They are should be named after the native name of the language (English, Deutsch, Nederlands, etc) with a &amp;lt;code&amp;gt;.txt&amp;lt;/code&amp;gt; filename extension. &amp;lt;code&amp;gt;English.txt&amp;lt;/code&amp;gt; should always be present. It is the master language. All other language files should be a translation of &amp;lt;code&amp;gt;English.txt&amp;lt;/code&amp;gt;, and any untranslated strings will fall back to the English.&lt;br /&gt;
&lt;br /&gt;
Language files should be encoded as UTF-8, and must not have a byte order marker at the start. The content of the file should look like this:&lt;br /&gt;
&lt;br /&gt;
 # This is a comment&lt;br /&gt;
 GAME_SAVED_TO&lt;br /&gt;
     &amp;quot;Game saved to &amp;quot;&lt;br /&gt;
 SELECT_FILENAME_TO_LOAD&lt;br /&gt;
     Select a file to load&lt;br /&gt;
 COULD_NOT_OPEN_FILENAME&lt;br /&gt;
     Could not open %path&lt;br /&gt;
&lt;br /&gt;
Blank lines and lines beginning with # are ignored. All the other lines in the file are interpreted as tokens and definitions, alternately, until the end of the file.&lt;br /&gt;
&lt;br /&gt;
===Tokens===&lt;br /&gt;
&lt;br /&gt;
The token is a single word or phrase, in capitals, with underscores replacing spaces and with no punctuation. The token is the same in all languages, and uniquely identifies a translatable phrase to Pioneer.&lt;br /&gt;
&lt;br /&gt;
===Definitions===&lt;br /&gt;
&lt;br /&gt;
The definition is the translatable phrase, in whichever language is specified in the filename. Leading and trailing whitespace are ignored. The definitions are indented for legibility, but this is just for the benefit of the person working with the file, not a technical requirement.&lt;br /&gt;
&lt;br /&gt;
If a translatable phrase should have a leading or trailing space, the definition must be quoted as in the example &amp;quot;Game saved to&amp;quot;' above. This practice is being superseded by tokenization, as described below. If you find a translation where word order would be wrong in your language, please raise an issue on the [https://github.com/pioneerspacesim/pioneer/issues Github issue tracker] so that it can be tokenized.&lt;br /&gt;
&lt;br /&gt;
Tokenization, as in the example &amp;quot;Could not open %path&amp;quot; above, is used where a phrase will have words inserted by Pioneer. In the example, it is the name of a saved game. In others, it might be where a date or a price is used, or a character's name, a piece of equipment or a cargo type. These tokens are not the same as the main language tokens. These tokens begin with a percent sign, and if they are used adjacent to other words, they can be enclosed in braces, as in this example:&lt;br /&gt;
&lt;br /&gt;
 NUMBER_TONNES&lt;br /&gt;
     %{mass}t&lt;br /&gt;
&lt;br /&gt;
Tokens within definitions must not be changed or translated. If the token is changed, it will stop working.&lt;br /&gt;
&lt;br /&gt;
==Lua module translation==&lt;br /&gt;
===Regular translatable phrases===&lt;br /&gt;
&lt;br /&gt;
Translatable phrases in Lua modules are defined as tables within Lua files. The filename is arbitrary, and is normally chosen by the script writer, who should ideally have provided translatable phrases in the English language.&lt;br /&gt;
&lt;br /&gt;
Languages are defined as a single Lua table, which contains each language's name as a key, and a further table as that language's dictionary. This is passed to the Translate:Add() function as a single parameter. English ''must'' be defined first, otherwise the game can crash. A simple example is as follows:&lt;br /&gt;
&lt;br /&gt;
 Translate:Add({&lt;br /&gt;
     English = {&lt;br /&gt;
         WELCOME = 'Welcome',&lt;br /&gt;
         [&amp;quot;That's beautiful&amp;quot;] = &amp;quot;That's beautiful&amp;quot;,&lt;br /&gt;
     },&lt;br /&gt;
     Deutsch = {&lt;br /&gt;
         WELCOME = 'Willkommen',&lt;br /&gt;
         [&amp;quot;That's beautiful&amp;quot;] = 'Das ist wunderschön',&lt;br /&gt;
     }&lt;br /&gt;
 })&lt;br /&gt;
&lt;br /&gt;
This example adds two phrases each to the English and German languages. While a basic understanding of Lua is helpful, it shouldn't be absolutely necessary.&lt;br /&gt;
&lt;br /&gt;
Note that tokens can be any valid Lua key value. The first style shown above, '''WELCOME''', is a simple token. The other one, '''[&amp;quot;That's beautiful&amp;quot;]''', is required wherever a token contains spaces or punctuation. Using the English string as the token makes the mission code more legible.&lt;br /&gt;
&lt;br /&gt;
The definitions are strings. All entries within tables in Lua should be followed by a comma. Definitions might contain tokens; some will be like the ones described in the Core Engine section above, but others might appear in curly braces like {this}. Those tokens should not be modified or translated; they are where the Lua script will insert other values.&lt;br /&gt;
&lt;br /&gt;
===Mission flavours===&lt;br /&gt;
&lt;br /&gt;
The Translate library also includes methods for dealing with flavours. A flavour is an alternative set of phrases for use in a bulletin board advert, or similar, used to add variety to the same mission.&lt;br /&gt;
&lt;br /&gt;
Flavours are defined as a simple Lua table, and are passed to the ''Translate:AddFlavour()'' function, along with the flavour's language and the name of the module. The name of the module must not be changed, or the flavour will not be used. The flavour loader, Translate:AddFlavour, checks for errors. The first flavour to be defined must be English; all others will be checked to make sure that their structure matches that one.&lt;br /&gt;
&lt;br /&gt;
A flavours can be added like this:&lt;br /&gt;
&lt;br /&gt;
 Translate:AddFlavour('English','TestModule',{&lt;br /&gt;
      title = &amp;quot;Shill bidder wanted for auction&amp;quot;,&lt;br /&gt;
      greeting = &amp;quot;Hi there.  Want to earn some quick cash?&amp;quot;,&lt;br /&gt;
      yesplease = &amp;quot;Sure.  What do you need me to do?&amp;quot;,&lt;br /&gt;
      nothanks = &amp;quot;No, ta - this looks a bit shady.&amp;quot;,&lt;br /&gt;
 })&lt;br /&gt;
&lt;br /&gt;
And another:&lt;br /&gt;
&lt;br /&gt;
 Translate:AddFlavour('English','TestModule',{&lt;br /&gt;
      title = &amp;quot;Help me win an auction.&amp;quot;,&lt;br /&gt;
      greeting = &amp;quot;Hello.  I'll pay you to place fake bids for me.  Interested?&amp;quot;,&lt;br /&gt;
      yesplease = &amp;quot;Yes, I like to live dangerously.&amp;quot;,&lt;br /&gt;
      nothanks = &amp;quot;No thanks; I'd rather not get arrested for fraud.&amp;quot;,&lt;br /&gt;
 })&lt;br /&gt;
&lt;br /&gt;
The language is specified in the first line as '''English''', and after the language comes the module name, which in this example is '''testmodule'''. To add a German flavour, simply copy that structure, change the 'English' to 'Deutsch' and translate the strings between the quotes. As before, if you see tokens like {this}, do not alter them. They will be replaced by another value during the game.&lt;br /&gt;
&lt;br /&gt;
It is not necessary to have the same number of flavours in every language. It is necessary to include all of the keys, and not to add extra ones or mis-spell them. If that happens, it will produce an error.&lt;br /&gt;
&lt;br /&gt;
===Submitting work===&lt;br /&gt;
&lt;br /&gt;
Ideally, translators should have an account on Github.com and should work from their own fork of the project. New languages, and modifications of existing languages, can be submitted for inclusion in Pioneer by means of a Github.com pull request.&lt;br /&gt;
&lt;br /&gt;
If you do not wish to use Github.com, the next best solution is to submit an email formatted patch set from any other git repository.&lt;br /&gt;
&lt;br /&gt;
If you cannot use git at all, please either email your submission to [mailto:brian@ppcis.org brian@ppcis.org], or send it to Brianetta on the Space Sim Central forum. Be sure to include your name and email address; these will be used to mark your work on the git commit log.&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=83</id>
		<title>Pioneer Wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=83"/>
		<updated>2012-09-11T13:06:36Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pioneer is a space adventure game set in the milkyway galaxy at the turn of the 31st century. The game is open-ended, and you are free to explore the millions of star systems in the game. You can land on planets, slingshot past gas giants, and burn yourself to a crisp flying between binary star systems. &lt;br /&gt;
&lt;br /&gt;
* [http://pioneerspacesim.net/download Download Pioneer] for Windows, Linux and Mac OSX&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/pioneerspacesim/files/nightly/ Development Builds] (warning, may be more unstable than a release) &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Please make this wiki nice. Copy the content over from the [https://github.com/pioneerspacesim/pioneer/wiki GitHub wiki], add stuff about mods, dev, whatever. Be awesome! [[Getting started|How to get started]].&lt;br /&gt;
&lt;br /&gt;
And write a nice front page and get rid of this, ok? :)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
{|width=100%&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#bbffbb; border:2px solid #99ee99;  padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Community===&lt;br /&gt;
* [http://pioneerspacesim.net/ Pioneer Space Sim Homepage]&lt;br /&gt;
* [http://pioneerspacesim.net/forum Forums]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [http://twitter.com/pioneerspacesim @pioneerspacesim] on Twitter&lt;br /&gt;
* [[Media Coverage]]&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#f0f0ff; border:2px solid #c6c9ff; padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Content Creation===&lt;br /&gt;
* [[Mods]]&lt;br /&gt;
* [[Introduction to Mission Scripting]]&lt;br /&gt;
** [[Interacting with the game: Event-based programming]]&lt;br /&gt;
** [[Interacting with the player: BBS forms]]&lt;br /&gt;
** [[Surviving a reload]]&lt;br /&gt;
* [http://eatenbyagrue.org/f/pioneer/codedoc/ LUA API Reference]&lt;br /&gt;
* [[Music]]&lt;br /&gt;
* [[Sound Effects]]&lt;br /&gt;
* [[Translations]]&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#fff3f3; border:2px solid #ffc9c9; padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Development===&lt;br /&gt;
* [[Getting Started with Development]]&lt;br /&gt;
* [[Development Model]]&lt;br /&gt;
* [[Design_Workflow|Design and Project Management Workflow]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pioneer is brung to you by a flock of [https://github.com/pioneerspacesim/pioneer/blob/master/AUTHORS.txt opensource beardy-weirdies], and is [http://www.gnu.org/licenses/gpl.html Free Software]&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Sound_Effects&amp;diff=82</id>
		<title>Sound Effects</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Sound_Effects&amp;diff=82"/>
		<updated>2012-09-11T13:04:29Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pioneer sound effects are in [http://xiph.org/vorbis/ ogg vorbis] format.&lt;br /&gt;
&lt;br /&gt;
Put sound files in &amp;lt;code&amp;gt;data/sounds/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sound files can be in nested directories within &amp;lt;code&amp;gt;data/sounds&amp;lt;/code&amp;gt;, and Pioneer will recursively search through them.&lt;br /&gt;
&lt;br /&gt;
Sound files should be stereo or mono, 44100Hz or 22050Hz.&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Sound_Effects&amp;diff=81</id>
		<title>Sound Effects</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Sound_Effects&amp;diff=81"/>
		<updated>2012-09-11T13:04:18Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: Imported from github wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pioneer sound effects are in [http://xiph.org/vorbis/ ogg vorbis] format.&lt;br /&gt;
&lt;br /&gt;
Put sound files in &amp;lt;code&amp;gt;data/sounds/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sound files can be in nested directories within &amp;lt;code&amp;gt;data/sounds&amp;lt;code&amp;gt;, and Pioneer will recursively search through them.&lt;br /&gt;
&lt;br /&gt;
Sound files should be stereo or mono, 44100Hz or 22050Hz.&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=80</id>
		<title>Pioneer Wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=80"/>
		<updated>2012-09-11T13:03:22Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pioneer is a space adventure game set in the milkyway galaxy at the turn of the 31st century. The game is open-ended, and you are free to explore the millions of star systems in the game. You can land on planets, slingshot past gas giants, and burn yourself to a crisp flying between binary star systems. &lt;br /&gt;
&lt;br /&gt;
* [http://pioneerspacesim.net/download Download Pioneer] for Windows, Linux and Mac OSX&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/pioneerspacesim/files/nightly/ Development Builds] (warning, may be more unstable than a release) &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Please make this wiki nice. Copy the content over from the [https://github.com/pioneerspacesim/pioneer/wiki GitHub wiki], add stuff about mods, dev, whatever. Be awesome! [[Getting started|How to get started]].&lt;br /&gt;
&lt;br /&gt;
And write a nice front page and get rid of this, ok? :)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
{|width=100%&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#bbffbb; border:2px solid #99ee99;  padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Community===&lt;br /&gt;
* [http://pioneerspacesim.net/ Pioneer Space Sim Homepage]&lt;br /&gt;
* [http://pioneerspacesim.net/forum Forums]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [http://twitter.com/pioneerspacesim @pioneerspacesim] on Twitter&lt;br /&gt;
* [[Media Coverage]]&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#f0f0ff; border:2px solid #c6c9ff; padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Content Creation===&lt;br /&gt;
* [[Mods]]&lt;br /&gt;
* [[Introduction to Mission Scripting]]&lt;br /&gt;
** [[Interacting with the game: Event-based programming]]&lt;br /&gt;
** [[Interacting with the player: BBS forms]]&lt;br /&gt;
** [[Surviving a reload]]&lt;br /&gt;
* [http://eatenbyagrue.org/f/pioneer/codedoc/ LUA API Reference]&lt;br /&gt;
* [[Music]]&lt;br /&gt;
* [[Sound Effects]]&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#fff3f3; border:2px solid #ffc9c9; padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Development===&lt;br /&gt;
* [[Getting Started with Development]]&lt;br /&gt;
* [[Development Model]]&lt;br /&gt;
* [[Design_Workflow|Design and Project Management Workflow]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pioneer is brung to you by a flock of [https://github.com/pioneerspacesim/pioneer/blob/master/AUTHORS.txt opensource beardy-weirdies], and is [http://www.gnu.org/licenses/gpl.html Free Software]&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Music&amp;diff=79</id>
		<title>Music</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Music&amp;diff=79"/>
		<updated>2012-09-11T13:01:56Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: Imported from github wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Music files should be placed in a subdirectory of &amp;lt;code&amp;gt;data/music/&amp;lt;/code&amp;gt;. They must be in [http://xiph.org/vorbis/ .ogg format], sampled at 44100 or 22050 Hz.&lt;br /&gt;
&lt;br /&gt;
Music in &amp;lt;code&amp;gt;core/&amp;lt;/code&amp;gt; will be played by the default player script, &amp;lt;code&amp;gt;modules/MusicPlayer.lua&amp;lt;/code&amp;gt;. Mission or per-system scripts should add their own music to a separate sub-directory.&lt;br /&gt;
&lt;br /&gt;
Music in &amp;lt;code&amp;gt;core/&amp;lt;/code&amp;gt; is selected based on game events. When a particular game event occurs a song is chosen at random from the appropriate subdir. The subdirs are as follows:&lt;br /&gt;
&lt;br /&gt;
* '''space''': ambient music, played while flying in space. When music for a specific event finishes the player will start a song from this category. This is also the fallback category if any category subdir has no songs in it.&lt;br /&gt;
&lt;br /&gt;
* '''near-planet''', '''near-spacestation''': ambient music specific to planets and orbital stations. The player will play something from one of these categories if ambient music is requested and the player is near a planet or station.&lt;br /&gt;
&lt;br /&gt;
* '''docked''': played when the player docks (ie as the station menu appears)&lt;br /&gt;
&lt;br /&gt;
* '''undocked''': played when the player undocks (ie when the request launch)&lt;br /&gt;
&lt;br /&gt;
* '''ship-nearby''', '''ship-firing''': played when the player's alert state changes because a ship is nearby (within 100km) or starts firing. Note that the presence of a ship (even a firing ship) does not necessarily mean the ship is hostile and the player is (about to be) in combat.&lt;br /&gt;
&lt;br /&gt;
* '''ship-destroyed''': played with the player destroys a ship&lt;br /&gt;
&lt;br /&gt;
* '''player-destroyed''': played when the player is destroyed. Will continue to play over the &amp;quot;tombstone&amp;quot; screen.&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=77</id>
		<title>Pioneer Wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=77"/>
		<updated>2012-09-11T12:58:37Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pioneer is a space adventure game set in the milkyway galaxy at the turn of the 31st century. The game is open-ended, and you are free to explore the millions of star systems in the game. You can land on planets, slingshot past gas giants, and burn yourself to a crisp flying between binary star systems. &lt;br /&gt;
&lt;br /&gt;
* [http://pioneerspacesim.net/download Download Pioneer] for Windows, Linux and Mac OSX&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/pioneerspacesim/files/nightly/ Development Builds] (warning, may be more unstable than a release) &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Please make this wiki nice. Copy the content over from the [https://github.com/pioneerspacesim/pioneer/wiki GitHub wiki], add stuff about mods, dev, whatever. Be awesome! [[Getting started|How to get started]].&lt;br /&gt;
&lt;br /&gt;
And write a nice front page and get rid of this, ok? :)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
{|width=100%&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#bbffbb; border:2px solid #99ee99;  padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Community===&lt;br /&gt;
* [http://pioneerspacesim.net/ Pioneer Space Sim Homepage]&lt;br /&gt;
* [http://pioneerspacesim.net/forum Forums]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [http://twitter.com/pioneerspacesim @pioneerspacesim] on Twitter&lt;br /&gt;
* [[Media Coverage]]&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#f0f0ff; border:2px solid #c6c9ff; padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Content Creation===&lt;br /&gt;
* [[Mods]]&lt;br /&gt;
* [[Introduction to Mission Scripting]]&lt;br /&gt;
** [[Interacting with the game: Event-based programming]]&lt;br /&gt;
** [[Interacting with the player: BBS forms]]&lt;br /&gt;
** [[Surviving a reload]]&lt;br /&gt;
* [http://eatenbyagrue.org/f/pioneer/codedoc/ LUA API Reference]&lt;br /&gt;
* [[Music]]&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#fff3f3; border:2px solid #ffc9c9; padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Development===&lt;br /&gt;
* [[Getting Started with Development]]&lt;br /&gt;
* [[Development Model]]&lt;br /&gt;
* [[Design_Workflow|Design and Project Management Workflow]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pioneer is brung to you by a flock of [https://github.com/pioneerspacesim/pioneer/blob/master/AUTHORS.txt opensource beardy-weirdies], and is [http://www.gnu.org/licenses/gpl.html Free Software]&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=76</id>
		<title>Pioneer Wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=76"/>
		<updated>2012-09-11T12:57:34Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pioneer is a space adventure game set in the milkyway galaxy at the turn of the 31st century. The game is open-ended, and you are free to explore the millions of star systems in the game. You can land on planets, slingshot past gas giants, and burn yourself to a crisp flying between binary star systems. &lt;br /&gt;
&lt;br /&gt;
* [http://pioneerspacesim.net/download Download Pioneer] for Windows, Linux and Mac OSX&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/pioneerspacesim/files/nightly/ Development Builds] (warning, may be more unstable than a release) &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Please make this wiki nice. Copy the content over from the [https://github.com/pioneerspacesim/pioneer/wiki GitHub wiki], add stuff about mods, dev, whatever. Be awesome! [[Getting started|How to get started]].&lt;br /&gt;
&lt;br /&gt;
And write a nice front page and get rid of this, ok? :)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
{|width=100%&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#bbffbb; border:2px solid #99ee99;  padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Community===&lt;br /&gt;
* [http://pioneerspacesim.net/ Pioneer Space Sim Homepage]&lt;br /&gt;
* [http://pioneerspacesim.net/forum Forums]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [http://twitter.com/pioneerspacesim @pioneerspacesim] on Twitter&lt;br /&gt;
* [[Media Coverage]]&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#f0f0ff; border:2px solid #c6c9ff; padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Content Creation===&lt;br /&gt;
* [[Mods]]&lt;br /&gt;
* [[Introduction to Mission Scripting]]&lt;br /&gt;
** [[Interacting with the game: Event-based programming]]&lt;br /&gt;
** [[Interacting with the player: BBS forms]]&lt;br /&gt;
** [[Surviving a reload]]&lt;br /&gt;
* [http://eatenbyagrue.org/f/pioneer/codedoc/ LUA API Reference]&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#fff3f3; border:2px solid #ffc9c9; padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
===Development===&lt;br /&gt;
* [[Getting Started with Development]]&lt;br /&gt;
* [[Development Model]]&lt;br /&gt;
* [[Design_Workflow|Design and Project Management Workflow]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pioneer is brung to you by a flock of [https://github.com/pioneerspacesim/pioneer/blob/master/AUTHORS.txt opensource beardy-weirdies], and is [http://www.gnu.org/licenses/gpl.html Free Software]&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=75</id>
		<title>Pioneer Wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=75"/>
		<updated>2012-09-11T12:53:39Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pioneer is a space adventure game set in the milkyway galaxy at the turn of the 31st century. The game is open-ended, and you are free to explore the millions of star systems in the game. You can land on planets, slingshot past gas giants, and burn yourself to a crisp flying between binary star systems. &lt;br /&gt;
&lt;br /&gt;
* [http://pioneerspacesim.net/download Download Pioneer] for Windows, Linux and Mac OSX&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/pioneerspacesim/files/nightly/ Development Builds] (warning, may be more unstable than a release) &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Please make this wiki nice. Copy the content over from the [https://github.com/pioneerspacesim/pioneer/wiki GitHub wiki], add stuff about mods, dev, whatever. Be awesome! [[Getting started|How to get started]].&lt;br /&gt;
&lt;br /&gt;
And write a nice front page and get rid of this, ok? :)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
{|width=100%&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#bbffbb; border:2px solid #99ee99;  padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Community===&lt;br /&gt;
* [http://pioneerspacesim.net/ Pioneer Space Sim Homepage]&lt;br /&gt;
* [http://pioneerspacesim.net/forum Forums]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [http://twitter.com/pioneerspacesim @pioneerspacesim] on Twitter&lt;br /&gt;
* [[Media Coverage]]&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#f0f0ff; border:2px solid #c6c9ff; padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Content Creation===&lt;br /&gt;
* [[Mods]]&lt;br /&gt;
* [[Introduction to Mission Scripting]]&lt;br /&gt;
** [[Interacting with the game: Event-based programming]]&lt;br /&gt;
** [[Interacting with the player: BBS forms]]&lt;br /&gt;
** [[Surviving a reload]]&lt;br /&gt;
* [[Creating Custom Systems]]&lt;br /&gt;
* [http://eatenbyagrue.org/f/pioneer/codedoc/ LUA API Reference]&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#fff3f3; border:2px solid #ffc9c9; padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
===Development===&lt;br /&gt;
* [[Getting Started with Development]]&lt;br /&gt;
* [[Development Model]]&lt;br /&gt;
* [[Design_Workflow|Design and Project Management Workflow]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pioneer is brung to you by a flock of [https://github.com/pioneerspacesim/pioneer/blob/master/AUTHORS.txt opensource beardy-weirdies], and is [http://www.gnu.org/licenses/gpl.html Free Software]&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Mods&amp;diff=69</id>
		<title>Mods</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Mods&amp;diff=69"/>
		<updated>2012-09-11T11:47:15Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: Added a table for the known mods.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Available Mods ==&lt;br /&gt;
&lt;br /&gt;
=== How to install Mods ===&lt;br /&gt;
&lt;br /&gt;
Since Alpha 22 Pioneer has had support for modding. This is done by allowing core game data to be added to or overwritten by data in your userdir (that is, &amp;lt;code&amp;gt;'My Docs/Pioneer'&amp;lt;/code&amp;gt; for Windows, &amp;lt;code&amp;gt;'~/.pioneer'&amp;lt;/code&amp;gt; for Linux, and &amp;lt;code&amp;gt;'~/Library/Application Support/Pioneer'&amp;lt;/code&amp;gt; for OSX).&lt;br /&gt;
&lt;br /&gt;
You have two options for adding files:&lt;br /&gt;
&lt;br /&gt;
* Put them in userdir/data. Any files in this dir will be visible to the game as part of its normal data/ dir.&lt;br /&gt;
* Put them in a zip file in userdir/mods. The zip file contents will be visible to the game as part of its normal data/ dir.&lt;br /&gt;
&lt;br /&gt;
If a file in your userdir (data or mod) conflicts with one in the core datadir, your copy will be used. You can use this fact to replace core files.&lt;br /&gt;
&lt;br /&gt;
This mechanism can be used for any file under data/ - ships, models, systems, music, fonts, textures, whatever.&lt;br /&gt;
&lt;br /&gt;
== List of known Mods ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Current known Mod Packages&lt;br /&gt;
|-&lt;br /&gt;
!Mod Name&lt;br /&gt;
!Mod Description&lt;br /&gt;
!Author&lt;br /&gt;
!Version*&lt;br /&gt;
!Size&lt;br /&gt;
!Download link&lt;br /&gt;
|-&lt;br /&gt;
|Graveyard&lt;br /&gt;
|Example of bundling multiple files in a mod. Adds a custom system &amp;quot;Graveyard&amp;quot; (up and to the right of Sol) and a script that does something when you jump there.&lt;br /&gt;
|[[User:RobN|RobN]]&lt;br /&gt;
|Alpha22&lt;br /&gt;
|1kb&lt;br /&gt;
|[http://eatenbyagrue.org/f/pioneer/graveyard.zip graveyard.zip]&lt;br /&gt;
|-&lt;br /&gt;
|RedSol&lt;br /&gt;
|Example of replacing a core file. Replaces the system def for Sol with one that has a red star. &lt;br /&gt;
|[[User:RobN|RobN]]&lt;br /&gt;
|Alpha22&lt;br /&gt;
|1kb&lt;br /&gt;
|[http://eatenbyagrue.org/f/pioneer/redsol.zip redsol.zip]&lt;br /&gt;
|-&lt;br /&gt;
|Moon Heightmap&lt;br /&gt;
|Higher res heightmap which replaces the 2mb default heightmap.&lt;br /&gt;
|Unknown&lt;br /&gt;
|Alpha26&lt;br /&gt;
|33Mb&lt;br /&gt;
|TBA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*'' Version numer represents what the module was tested/built against. There is no guarantee that it will work for later versions.''&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=File:Interact.misscrn.4.png&amp;diff=68</id>
		<title>File:Interact.misscrn.4.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=File:Interact.misscrn.4.png&amp;diff=68"/>
		<updated>2012-09-11T10:36:46Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=File:Interact.misscrn.3.png&amp;diff=67</id>
		<title>File:Interact.misscrn.3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=File:Interact.misscrn.3.png&amp;diff=67"/>
		<updated>2012-09-11T10:29:30Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=File:Interact.misscrn.2.png&amp;diff=66</id>
		<title>File:Interact.misscrn.2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=File:Interact.misscrn.2.png&amp;diff=66"/>
		<updated>2012-09-11T10:27:22Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=File:Interact.misscrn.1.png&amp;diff=65</id>
		<title>File:Interact.misscrn.1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=File:Interact.misscrn.1.png&amp;diff=65"/>
		<updated>2012-09-11T10:24:57Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=File:Interact.bbsad.4.png&amp;diff=64</id>
		<title>File:Interact.bbsad.4.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=File:Interact.bbsad.4.png&amp;diff=64"/>
		<updated>2012-09-11T10:24:03Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=File:Interact.bbsad.3.png&amp;diff=63</id>
		<title>File:Interact.bbsad.3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=File:Interact.bbsad.3.png&amp;diff=63"/>
		<updated>2012-09-11T10:22:53Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=File:Interact.bbsad.2.png&amp;diff=62</id>
		<title>File:Interact.bbsad.2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=File:Interact.bbsad.2.png&amp;diff=62"/>
		<updated>2012-09-11T10:22:11Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=File:Interact.bbsad.1.png&amp;diff=61</id>
		<title>File:Interact.bbsad.1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=File:Interact.bbsad.1.png&amp;diff=61"/>
		<updated>2012-09-11T10:19:26Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Interacting_with_the_player:_BBS_forms&amp;diff=60</id>
		<title>Interacting with the player: BBS forms</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Interacting_with_the_player:_BBS_forms&amp;diff=60"/>
		<updated>2012-09-11T10:07:18Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: Initial transfer from GitHub wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The bulletin board system is currently the only place where real dialogue between a script and the player can take place. Bulletin boards can exist within any &amp;lt;code&amp;gt;SpaceStation&amp;lt;/code&amp;gt; in the current system. They are created in a station the first time that a ship is either spawned, or lands, in that station. They continue to exist until the player leaves the system or quits the game. They are not saved in saved games, although a saved game contains information about which ones did exist.&lt;br /&gt;
&lt;br /&gt;
When a bulletin board is created, the &amp;lt;code&amp;gt;onCreateBB&amp;lt;/code&amp;gt; event is triggered, and passes the &amp;lt;code&amp;gt;SpaceStation&amp;lt;/code&amp;gt; body in which that bulletin board was created. There is an exception to this: The event is not triggered after loading a game for those bulletin boards which, having existed at the time of saving, are re-created. The consequences of this will be covered later (see &amp;quot;[[Surviving a reload]]&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
There are two components to any mission's entry on a bulletin board: The advert and the form. The advert is the part that is displayed on the main bulletin board list, along with all the other entries. The form is the part that appears on screen when the player clicks the advert's button.&lt;br /&gt;
&lt;br /&gt;
==Internationalization==&lt;br /&gt;
&lt;br /&gt;
It is important that scripters are familiar with the Translations library (scroll down to &amp;quot;Lua module translation&amp;quot;). A list of &amp;lt;code&amp;gt;Translate:Add()&amp;lt;/code&amp;gt; calls are usually placed in a file named &amp;lt;code&amp;gt;Languages.lua&amp;lt;/code&amp;gt; and kept in the same subdirectory as the script that needs them.&lt;br /&gt;
&lt;br /&gt;
This is by convention only; all translations, regardless of filename, are available to all scripts, and it would technically be perfectly possible to recycle the translated strings provided by another script. In order to keep the workload as simple as possible for translators, however, we do prefer the convention to be followed.&lt;br /&gt;
&lt;br /&gt;
The script itself makes use of translated strings by getting the translator function and using it to translate strings by token. So, if the &amp;lt;code&amp;gt;Languages.lua&amp;lt;/code&amp;gt; file contained this:&lt;br /&gt;
&lt;br /&gt;
 Translate:Add({&lt;br /&gt;
     English = {&lt;br /&gt;
         ['Please, help me!'] = 'Please, help me!',&lt;br /&gt;
     },&lt;br /&gt;
     Deutsch = {&lt;br /&gt;
         ['Please, help me!'] = 'Bitte, hilf mir!',&lt;br /&gt;
     },&lt;br /&gt;
 })&lt;br /&gt;
&lt;br /&gt;
then in the main script, you would first get the translator function:&lt;br /&gt;
&lt;br /&gt;
 local t = Translate:GetTranslator()&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt; could be any other convenient name, in the event that you already have a variable named &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt;. Once you have your translator, you can simply use it to translate by giving it the key:&lt;br /&gt;
&lt;br /&gt;
 UI.Message(t('Please, help me!'))&lt;br /&gt;
&lt;br /&gt;
This would put &amp;quot;''Please, help me!''&amp;quot; on the screens of English players, and &amp;quot;''Bitter, hilf mir!''&amp;quot; on the screens of German players.&lt;br /&gt;
&lt;br /&gt;
The translator is fully documented in the codedoc. For the remainder of the document, I shall be using string literals. This is for clarity only; all custom scripts should be fully translatable if they are intended to be included with the game.&lt;br /&gt;
&lt;br /&gt;
==The BBS advert==&lt;br /&gt;
&lt;br /&gt;
Adverts are placed onto a BBS by calling the station's &amp;lt;code&amp;gt;AddAdvert()&amp;lt;/code&amp;gt; method, once the bulletin board has been created. Depending on the nature of your script, you might want to always place one advert on every station (as seen with the Breakdowns &amp;amp; Servicing script), or you might want to place an arbitrary number of adverts on a given station (as seen with deliveries, or assassinations).&lt;br /&gt;
&lt;br /&gt;
The opportunities to add an advert are presented by two events. &amp;lt;code&amp;gt;onCreateBB&amp;lt;/code&amp;gt; is the obvious one; there is also &amp;lt;code&amp;gt;onUpdateBB&amp;lt;/code&amp;gt;, which is called for all existing bulletin boards in the current system, approximately once every hour or two. The actual interval is not particularly predictable.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;AddAdvert()&amp;lt;/code&amp;gt; method takes three arguments. The first is the text that will appear on the advert. The second is the function that will be called when the player clicks the advert. The third is optional, and is a function that can be called when the advert is deleted for any reason.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;AddAdvert()&amp;lt;/code&amp;gt; returns a reference number, which can subsequently be used to remove the advert using &amp;lt;code&amp;gt;RemoveAdvert()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It's the job of the scripter to decide how many, if any, adverts to add to a bulletin board when &amp;lt;code&amp;gt;onCreateBB&amp;lt;/code&amp;gt; is triggered, and whether to add or remove any when &amp;lt;code&amp;gt;onUpdateBB&amp;lt;/code&amp;gt; is triggered. Tests could include the population of the system, the type of starport or the type of planet. In the future, tests will be able to include the government type of the system.&lt;br /&gt;
&lt;br /&gt;
One important thing to bear in mind is that the script cannot query a bulletin boad to find out what adverts already exist. Each script must carefully track each advert that it has created if it is to have any control over how long they remain, and to be able to re-create them after a reload.&lt;br /&gt;
&lt;br /&gt;
Here is an example of adding an advert. The effect of clicking the advert is simply to send a message to the player console with the name of the station. The advert is only added if the station is in space. There is no mission here; I am simply illustrating the mechanics of adding the advert.&lt;br /&gt;
&lt;br /&gt;
 local onCreateBB = function (station)&lt;br /&gt;
 &lt;br /&gt;
     -- This function can be in any scope that's visible when AddAdvert() is called&lt;br /&gt;
     local sendStationName = function ()&lt;br /&gt;
         UI.Message(station.label)&lt;br /&gt;
     end&lt;br /&gt;
  &lt;br /&gt;
     if station.type == 'STARPORT_ORBITAL' then&lt;br /&gt;
         station:AddAdvert('Need the name of this station?',sendStationName)&lt;br /&gt;
     end&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 EventQueue.onCreateBB:Connect(onCreateBB)&lt;br /&gt;
&lt;br /&gt;
This code will create an advert:&lt;br /&gt;
&lt;br /&gt;
[[File:interact.bbsad.1.png]]&lt;br /&gt;
&lt;br /&gt;
Looking at the image, you will notice that my advert has appeared at a completely arbitrary location on the bulletin board. There is no way to specify the location, and no way to determine it.&lt;br /&gt;
&lt;br /&gt;
Clicking on the advert causes this to happen:&lt;br /&gt;
&lt;br /&gt;
[[File:interact.bbsad.2.png]]&lt;br /&gt;
&lt;br /&gt;
Even though the only thing our function did was to send a message to the console (visible at the bottom), you can see that Pioneer automatically created a form for our advert. The only control is the &amp;quot;Go back&amp;quot; button, and the name and face are defaulted to that which was displayed on the main bulletin board.&lt;br /&gt;
&lt;br /&gt;
==The BBS form==&lt;br /&gt;
&lt;br /&gt;
Once the player has clicked on an advert, they are presented with a form. Each advert has only one form. The content of the form is added by the script, and can be modified at any time. It consists of a title, a face, a message and zero or more clickable options.&lt;br /&gt;
&lt;br /&gt;
The form itself is passed to the function specified in the &amp;lt;code&amp;gt;SpaceStation.AddAdvert()&amp;lt;/code&amp;gt; method. In the example above, that function would be &amp;lt;code&amp;gt;sendStationName()&amp;lt;/code&amp;gt;, which simply ignored any parameters sent to it. This resulted in the form being blank.&lt;br /&gt;
&lt;br /&gt;
The form object which is passed to this function has methods for adding the content. &amp;lt;code&amp;gt;SetTitle()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SetMessage()&amp;lt;/code&amp;gt; each accept a string. &amp;lt;code&amp;gt;SetFace()&amp;lt;/code&amp;gt; takes a table of information which defines the photofit face on the left. &amp;lt;code&amp;gt;AddOption()&amp;lt;/code&amp;gt; adds clickable options with buttons. &amp;lt;code&amp;gt;Clear()&amp;lt;/code&amp;gt; removes the Message and Options, but preserves the Title and Face, while &amp;lt;code&amp;gt;Close()&amp;lt;/code&amp;gt; acts the same way as the &amp;quot;Go back&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
The following example doesn't have any clickable options, but does have a customized form:&lt;br /&gt;
&lt;br /&gt;
 local populateForm = function (form)&lt;br /&gt;
     local facedata = {&lt;br /&gt;
         name = &amp;quot;Bob&amp;quot;,&lt;br /&gt;
         female = true,&lt;br /&gt;
         title = &amp;quot;Lorry driver&amp;quot;,&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     form:SetTitle('This appears above the face picture')&lt;br /&gt;
     form:SetFace(facedata)&lt;br /&gt;
     form:SetMessage([[This is the main message.&lt;br /&gt;
 &lt;br /&gt;
 It is normally a multi-line string.]])&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 local onCreateBB = function (station)&lt;br /&gt;
     station:AddAdvert('This appears in the advert list',populateForm)&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 EventQueue.onCreateBB:Connect(onCreateBB)&lt;br /&gt;
&lt;br /&gt;
As before, an advert was created:&lt;br /&gt;
&lt;br /&gt;
[[File:interact.bbsad.3.png]]&lt;br /&gt;
&lt;br /&gt;
Randomly, it has appeared at the top of the list.&lt;br /&gt;
&lt;br /&gt;
Clicking on the advert causes this to happen:&lt;br /&gt;
&lt;br /&gt;
[[File:interact.bbsad.4.png]]&lt;br /&gt;
&lt;br /&gt;
Now we can see that &amp;lt;code&amp;gt;populateForm&amp;lt;/code&amp;gt; was called, and it successfully filled the form with content. All of the face options were optional; if they aren't provided, Pioneer will choose random values. I have left out a couple of options here; it's wise to specify them all, because after a saved game is loaded, it's the script's job to make sure that the same face appears (see &amp;quot;[[Surviving a reload]]&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==Adding options to the form==&lt;br /&gt;
&lt;br /&gt;
In the example above, I created a function named &amp;lt;code&amp;gt;populateForm()&amp;lt;/code&amp;gt; which was run when the advert button was clicked. That's not the only time it can be run; it is also run whenever options on its form are clicked.&lt;br /&gt;
&lt;br /&gt;
To make use of this, it is passed two additional parameters, both of which &amp;lt;code&amp;gt;populateForm()&amp;lt;/code&amp;gt; ignored. The first parameter is the form object, the second is the advert's unique reference and the third is the number of the option that was clicked. Because it handles all chat events, by convention we instead name this function &amp;lt;code&amp;gt;onChat()&amp;lt;/code&amp;gt;, which is how it shall be named from now on.&lt;br /&gt;
&lt;br /&gt;
The previous example did not store or use the value returned by &amp;lt;code&amp;gt;AddAdvert()&amp;lt;/code&amp;gt;. It is this value which is sent as the second parameter; very useful if your script adds several adverts, each of which might have slightly differently worded content.&lt;br /&gt;
&lt;br /&gt;
When the advert was clicked in the main bulletin board list, it was passed the value &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; as the option.&lt;br /&gt;
&lt;br /&gt;
Form options are declared like this:&lt;br /&gt;
&lt;br /&gt;
   form:AddOption('I am option one',1)&lt;br /&gt;
   form:AddOption('I am option two',2)&lt;br /&gt;
&lt;br /&gt;
These options will appear with the specified caption, and will call &amp;lt;code&amp;gt;onChat()&amp;lt;/code&amp;gt;, which will receive the form object, the advert reference and the number that was specified after the caption in &amp;lt;code&amp;gt;AddOption()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The codedoc has a brilliant example of a complete onChat, which I will reproduce here:&lt;br /&gt;
&lt;br /&gt;
 local onChat = function (form, ref, option)&lt;br /&gt;
     form:Clear()&lt;br /&gt;
 &lt;br /&gt;
     -- option 0 is called when the form is first activated from the&lt;br /&gt;
     -- bulletin board&lt;br /&gt;
     if option == 0 then&lt;br /&gt;
 &lt;br /&gt;
         form:SetTitle(&amp;quot;Favourite colour&amp;quot;)&lt;br /&gt;
         form:SetMessage(&amp;quot;What's your favourite colour?&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
         form:AddOption(&amp;quot;Red&amp;quot;,       1)&lt;br /&gt;
         form:AddOption(&amp;quot;Green&amp;quot;,     2)&lt;br /&gt;
         form:AddOption(&amp;quot;Yellow&amp;quot;,    3)&lt;br /&gt;
         form:AddOption(&amp;quot;Blue&amp;quot;,      4)&lt;br /&gt;
         form:AddOption(&amp;quot;Hang up.&amp;quot;, -1)&lt;br /&gt;
 &lt;br /&gt;
         return&lt;br /&gt;
     end&lt;br /&gt;
 &lt;br /&gt;
     -- option 1 - red&lt;br /&gt;
     if option == 1 then&lt;br /&gt;
         form:SetMessage(&amp;quot;Ahh red, the colour of raspberries.&amp;quot;)&lt;br /&gt;
         form:AddOption(&amp;quot;Hang up.&amp;quot;, -1)&lt;br /&gt;
         return&lt;br /&gt;
     end&lt;br /&gt;
 &lt;br /&gt;
     -- option 2 - green&lt;br /&gt;
     if option == 2 then&lt;br /&gt;
         form:SetMessage(&amp;quot;Ahh green, the colour of trees.&amp;quot;)&lt;br /&gt;
         form:AddOption(&amp;quot;Hang up.&amp;quot;, -1)&lt;br /&gt;
         return&lt;br /&gt;
     end&lt;br /&gt;
 &lt;br /&gt;
     -- option 3 - yellow&lt;br /&gt;
     if option == 3 then&lt;br /&gt;
         form:SetMessage(&amp;quot;Ahh yellow, the colour of the sun.&amp;quot;)&lt;br /&gt;
         form:AddOption(&amp;quot;Hang up.&amp;quot;, -1)&lt;br /&gt;
         return&lt;br /&gt;
     end&lt;br /&gt;
 &lt;br /&gt;
     -- option 4 - blue&lt;br /&gt;
     if option == 4 then&lt;br /&gt;
         form:SetMessage(&amp;quot;Ahh blue, the colour of the ocean.&amp;quot;)&lt;br /&gt;
         form:AddOption(&amp;quot;Hang up.&amp;quot;, -1)&lt;br /&gt;
         return&lt;br /&gt;
     end&lt;br /&gt;
 &lt;br /&gt;
     -- only option left is -1, hang up&lt;br /&gt;
     form:Close()&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
Here, every time &amp;lt;code&amp;gt;onChat()&amp;lt;/code&amp;gt; is called, regardless of the specified option, the form is cleared. The option is checked, and the relevant content is added to the form. Any other functions can be called from here, and this is how the script gets input from the player.&lt;br /&gt;
&lt;br /&gt;
An alternative format might be this:&lt;br /&gt;
&lt;br /&gt;
 local onChat = function (form, ref, option)&lt;br /&gt;
     form:Clear()&lt;br /&gt;
 &lt;br /&gt;
     local options = {&lt;br /&gt;
         [0] = function ()&lt;br /&gt;
             form:SetTitle(&amp;quot;Favourite colour&amp;quot;)&lt;br /&gt;
             form:SetMessage(&amp;quot;What's your favourite colour?&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
             form:AddOption(&amp;quot;Red&amp;quot;,       1)&lt;br /&gt;
             form:AddOption(&amp;quot;Green&amp;quot;,     2)&lt;br /&gt;
             form:AddOption(&amp;quot;Yellow&amp;quot;,    3)&lt;br /&gt;
             form:AddOption(&amp;quot;Blue&amp;quot;,      4)&lt;br /&gt;
             form:AddOption(&amp;quot;Hang up.&amp;quot;, -1)&lt;br /&gt;
         end,&lt;br /&gt;
         [1] = function ()&lt;br /&gt;
             form:SetMessage(&amp;quot;Ahh red, the colour of raspberries.&amp;quot;)&lt;br /&gt;
             form:AddOption(&amp;quot;Hang up.&amp;quot;, -1)&lt;br /&gt;
         end,&lt;br /&gt;
         [2] = function ()&lt;br /&gt;
             form:SetMessage(&amp;quot;Ahh green, the colour of trees.&amp;quot;)&lt;br /&gt;
             form:AddOption(&amp;quot;Hang up.&amp;quot;, -1)&lt;br /&gt;
         end,&lt;br /&gt;
         [3] = function ()&lt;br /&gt;
             form:SetMessage(&amp;quot;Ahh yellow, the colour of the sun.&amp;quot;)&lt;br /&gt;
             form:AddOption(&amp;quot;Hang up.&amp;quot;, -1)&lt;br /&gt;
         end,&lt;br /&gt;
         [4] = function ()&lt;br /&gt;
             form:SetMessage(&amp;quot;Ahh blue, the colour of the ocean.&amp;quot;)&lt;br /&gt;
             form:AddOption(&amp;quot;Hang up.&amp;quot;, -1)&lt;br /&gt;
         end,&lt;br /&gt;
         [-1] = function ()&lt;br /&gt;
             form:Close()&lt;br /&gt;
         end&lt;br /&gt;
     }&lt;br /&gt;
     options[option]()&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
==The player's mission list==&lt;br /&gt;
&lt;br /&gt;
Once the player has negotiated with your form, there might well be a mission in play. It could be a delivery, an assassination, a rush to tell somebody not to leave because so-and-so loves them... the possibilities are limited only by your creativity.&lt;br /&gt;
&lt;br /&gt;
The player needs a way to keep track of all the missions that they have agreed to undertake. Pioneer provides this through the player's mission screen, which they can access at any time using the F3 button, and looking at the missions tab.&lt;br /&gt;
&lt;br /&gt;
The content of this screen is controlled by some methods on the &amp;lt;code&amp;gt;Player&amp;lt;/code&amp;gt; object, which can always be found at &amp;lt;code&amp;gt;Game.player&amp;lt;/code&amp;gt;, and which inherits from &amp;lt;code&amp;gt;Ship&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Body&amp;lt;/code&amp;gt;. Missions are added to the screen using the &amp;lt;code&amp;gt;AddMission()&amp;lt;/code&amp;gt; method. It takes a table of info, and returns an integer reference to that mission, which should be stored so that it can be updated or removed later. So, it usually looks a little like &amp;lt;code&amp;gt;ref = Game.player:AddMission(table_of_info)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In practice, it might look more like this:&lt;br /&gt;
&lt;br /&gt;
 local mission_storage={}&lt;br /&gt;
 &lt;br /&gt;
 table.insert(mission_storage,Game.player:AddMission({&lt;br /&gt;
     type = &amp;quot;Fetch beer&amp;quot;,&lt;br /&gt;
     client = &amp;quot;Bert Beerbreath&amp;quot;,&lt;br /&gt;
     due = Game.time + 600, -- ten minutes' time&lt;br /&gt;
     reward = 10,&lt;br /&gt;
     location = Game.player.frameBody.path, -- here, basically&lt;br /&gt;
     status = 'ACTIVE'&lt;br /&gt;
 }))&lt;br /&gt;
 &lt;br /&gt;
 table.insert(mission_storage,Game.player:AddMission({&lt;br /&gt;
     type = &amp;quot;Fetch curry&amp;quot;,&lt;br /&gt;
     client = &amp;quot;Curt Curryface&amp;quot;,&lt;br /&gt;
     due = Game.time + 900, -- fifteen minutes' time&lt;br /&gt;
     reward = 5,&lt;br /&gt;
     location = Game.player.frameBody.path,&lt;br /&gt;
     status = 'ACTIVE'&lt;br /&gt;
 }))&lt;br /&gt;
&lt;br /&gt;
I don't recommend using &amp;lt;code&amp;gt;Game.player.frameBody.path&amp;lt;/code&amp;gt; here. I'm only using it because it always returns something, whether docked or not. A real mission would probably use a space station here.&lt;br /&gt;
&lt;br /&gt;
This creates visible missions on the mission screen:&lt;br /&gt;
&lt;br /&gt;
[[File:interact.misscrn.1.png]]&lt;br /&gt;
&lt;br /&gt;
These missions will remain exactly like that forever, unless a script explicitly makes changes. There is no automatic logic, and no automatic removal. Your script must keep track of them. In this example, I have the references in the &amp;lt;code&amp;gt;mission_storage&amp;lt;/code&amp;gt; table.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;UpdateMission()&amp;lt;/code&amp;gt; method allows a script to alter any detail. The status can be &amp;lt;code&amp;gt;'ACTIVE'&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;'FAILED'&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;'COMPLETED'&amp;lt;/code&amp;gt;. I'm going to change the status of the first mission to &amp;lt;code&amp;gt;'COMPLETED'&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 Game.player:UpdateMission(mission_storage[1],{status='COMPLETED'})&lt;br /&gt;
&lt;br /&gt;
The updated information can be a partial table. The unspecified members will remain unchanged:&lt;br /&gt;
&lt;br /&gt;
[[File:interact.misscrn.2.png]]&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;GetMission()&amp;lt;/code&amp;gt; method allows a script to read data from a mission, if the script has the reference. It returns a table with that information. Here, I'm going to add ten minutes to the deadline of the second mission:&lt;br /&gt;
&lt;br /&gt;
 local due_date = Game.player:GetMission(mission_storage[2]).due&lt;br /&gt;
 Game.player:UpdateMission(mission_storage[2],{due = due_date + 600})&lt;br /&gt;
&lt;br /&gt;
The result:&lt;br /&gt;
&lt;br /&gt;
[[File:interact.misscrn.3.png]]&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;RemoveMission()&amp;lt;/code&amp;gt; method allows a script to remove a mission. Here I remove the completed one:&lt;br /&gt;
&lt;br /&gt;
 Game.player:RemoveMission(mission_storage[1])&lt;br /&gt;
 table.remove(mission_storage,1)&lt;br /&gt;
&lt;br /&gt;
And here it isn't:&lt;br /&gt;
&lt;br /&gt;
[[File:interact.misscrn.4.png]]&lt;br /&gt;
&lt;br /&gt;
==Mission flavours==&lt;br /&gt;
&lt;br /&gt;
A script can define a mission, and then place many instances of it onto many bulletin boards. A script that introduces many instances should provide some variety; it would harm immersion if all delivery missions were worded identically, for example.&lt;br /&gt;
&lt;br /&gt;
To introduce variety, we can use tables, which contain all of the lines needed for bulletin board forms, messages and so forth. It's then a simple matter to use a similar, but differently worded, table to make the same misison appear different. A flavour might look like this:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
     title = &amp;quot;Shill bidder wanted for auction&amp;quot;,&lt;br /&gt;
     greeting = &amp;quot;Hi there. Want to earn some quick cash?&amp;quot;,&lt;br /&gt;
     yesplease = &amp;quot;Sure. What do you need me to do?&amp;quot;,&lt;br /&gt;
     nothanks = &amp;quot;No, ta - this looks a bit shady.&amp;quot;,&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
An alternative flavour might look like this:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
      title = &amp;quot;Help me win an auction.&amp;quot;,&lt;br /&gt;
      greeting = &amp;quot;Hello. I'll pay you to place fake bids for me. Interested?&amp;quot;,&lt;br /&gt;
      yesplease = &amp;quot;Yes, I like to live dangerously.&amp;quot;,&lt;br /&gt;
      nothanks = &amp;quot;No thanks; I'd rather not get arrested for fraud.&amp;quot;,&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Ideally, we just need a table with as many of these as we can be bothered to write, then select one at random.&lt;br /&gt;
&lt;br /&gt;
There are issues with translation, though. Because flavours are often full of colloquial language, and can feature several ways of saying basically the same thing, translating them all word-for-word is not necessarily productive. To this end, the Translate system features a pair of methods which can ease the handling of flavours, especially in different languages.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;Translate:AddFlavour()&amp;lt;/code&amp;gt; method allows a flavour to be added, and marked as being of a specific language. By convention, these statements would appear in the script's &amp;lt;code&amp;gt;Languages.lua&amp;lt;/code&amp;gt; file so that translators could see them and be inspired to write some in other languages. The method takes three arguments. The first is the language of the flavour, as a string. The second is a name, so that the &amp;lt;code&amp;gt;Translate&amp;lt;/code&amp;gt; class can give flavours back to the correct script. The third is the flavour table itself. If my script was named &amp;lt;code&amp;gt;TestModule&amp;lt;/code&amp;gt;, I might define the two flavours above in my &amp;lt;code&amp;gt;Languages.lua&amp;lt;/code&amp;gt; as follows:&lt;br /&gt;
&lt;br /&gt;
 Translate:AddFlavour('English','TestModule',{&lt;br /&gt;
      title = &amp;quot;Shill bidder wanted for auction&amp;quot;,&lt;br /&gt;
      greeting = &amp;quot;Hi there. Want to earn some quick cash?&amp;quot;,&lt;br /&gt;
      yesplease = &amp;quot;Sure. What do you need me to do?&amp;quot;,&lt;br /&gt;
      nothanks = &amp;quot;No, ta - this looks a bit shady.&amp;quot;,&lt;br /&gt;
 })&lt;br /&gt;
 &lt;br /&gt;
 Translate:AddFlavour('English','TestModule',{&lt;br /&gt;
      title = &amp;quot;Help me win an auction.&amp;quot;,&lt;br /&gt;
      greeting = &amp;quot;Hello. I'll pay you to place fake bids for me. Interested?&amp;quot;,&lt;br /&gt;
      yesplease = &amp;quot;Yes, I like to live dangerously.&amp;quot;,&lt;br /&gt;
      nothanks = &amp;quot;No thanks; I'd rather not get arrested for fraud.&amp;quot;,&lt;br /&gt;
 })&lt;br /&gt;
&lt;br /&gt;
As an added benefit, &amp;lt;code&amp;gt;Translate:AddFlavour()&amp;lt;/code&amp;gt; checks all flavour tables for uniformity. It does this by comparing all of the table's keys with that of the first English flavour that was specified; a technical consequence of this is that an English flavour needs to come first in your &amp;lt;code&amp;gt;Languages.lua&amp;lt;/code&amp;gt; file, otherwise Pioneer will give you an error.&lt;br /&gt;
&lt;br /&gt;
To fetch the flavours into your script, use &amp;lt;code&amp;gt;Translate.GetFlavours()&amp;lt;/code&amp;gt;. It takes a single argument, which is the module name that was specified in &amp;lt;code&amp;gt;AddFlavour()&amp;lt;/code&amp;gt;'s second parameter. It doesn't matter to &amp;lt;code&amp;gt;Translate&amp;lt;/code&amp;gt; how many flavours there are in each language, or whether it's an equal number. If my current language is not English, and there are no flavours in that language, English flavours will be used instead. If there is only one flavour in my language, I will only see that one variety.&lt;br /&gt;
&lt;br /&gt;
The following example will select a random flavour from my flavour tables.&lt;br /&gt;
&lt;br /&gt;
 local all_flavours = Translate:GetFlavours('TestModule')&lt;br /&gt;
 local flavour = all_flavours[Engine.rand:Integer(1,#all_flavours)]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;GetFlavours()&amp;lt;/code&amp;gt; returns a table of flavours. The second line of code generates a random number between 1 and the number of flavours in that table, and returns that flavour from the table. After this, &amp;lt;code&amp;gt;flavour.title&amp;lt;/code&amp;gt; will either be &amp;lt;code&amp;gt;&amp;quot;Shill bidder wanted for auction&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;quot;Help me win an auction.&amp;quot;&amp;lt;/code&amp;gt;. Adding more flavours means more variety.&lt;br /&gt;
&lt;br /&gt;
==Maintaining immersion==&lt;br /&gt;
&lt;br /&gt;
Fictionally, of course, this bulletin board is visible to any and all ships that dock at the space station, not just the player. It is important that bulletin board missions are not all scaled to the capabilities of the player. Delivery missions with unreasonable deadlines should not be ruled out. Neither should cargo missions requiring much more cargo space than the player's ship has, or combat missions for which the player is completely unqualified.&lt;br /&gt;
&lt;br /&gt;
These missions should deal with the player gracefully; either allowing them to fail, and providing consequences, or preventing them from being given the mission.&lt;br /&gt;
&lt;br /&gt;
It's also important, if your script serves many instances of a mission, to periodically clear away bulletin board adverts and place new ones. Not just those with obvious time constraints, but any others; the assumption that the player should make is that perhaps some other character has taken these missions.&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Surviving_a_reload&amp;diff=59</id>
		<title>Surviving a reload</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Surviving_a_reload&amp;diff=59"/>
		<updated>2012-09-11T04:41:31Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: Initial conversion from github&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When a game is saved, a script is responsible for informing Pioneer exactly which of its data need to be saved. If nothing is specified, nothing will be saved at all. Similarly, after a game is loaded, a script is responsible for restoring all of its saved data; re-creating bulletin board adverts, the player's mission details, and any run-time state.&lt;br /&gt;
&lt;br /&gt;
Here is a simple form. If a new game is started, you will see this on every bulletin board that you visit:&lt;br /&gt;
&lt;br /&gt;
 local onChat = function (form, ref, option)&lt;br /&gt;
     form:Clear()&lt;br /&gt;
     form:SetMessage(&amp;quot;Hello!&amp;quot;)&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 local onCreateBB = function (station)&lt;br /&gt;
     station:AddAdvert('Click here for a greeting',)&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 EventQueue.onCreateBB:Connect(onCreateBB)&lt;br /&gt;
&lt;br /&gt;
If, however, you save the game, then reload, you will not see it on any bulletin board that had been created in the current system before you saved. onCreateBB will be triggered for any subsequently created bulletin boards, but not for those that already existed. It isn't appropriate to have scripts create new adverts just because a player has loaded; instead, it's the responsibility of the script to tell Pioneer what to save, and to use those saved data to restore all adverts after the game is loaded. The same goes for player missions, and any working data that the script is using.&lt;br /&gt;
&lt;br /&gt;
There are two things we need to do to achieve all of this.&lt;br /&gt;
&lt;br /&gt;
* We need to track everything that the script is doing.&lt;br /&gt;
* We need to be able to pack this away for saving, and bring it back after loading.&lt;br /&gt;
&lt;br /&gt;
==Tracking everything that we are doing==&lt;br /&gt;
&lt;br /&gt;
Any local table that is declared in file scope is visible to the entire script, without affecting any other scripts. Essential data should be kept in such tables.&lt;br /&gt;
&lt;br /&gt;
==Tracking adverts==&lt;br /&gt;
&lt;br /&gt;
It's important to be able to re-create an advert, so part of the process of making one should be storing that information. Your script will need to make a note of in which station the advert was placed, which flavour was used (if you have flavours), the face data that was used on the form and any unique information that was used, such as specific mission details, reward, etc. The simplest way to keep all of this together is in a table, gathering up the variables by name into keys of the same name:&lt;br /&gt;
&lt;br /&gt;
 local advert = {&lt;br /&gt;
     station = station,&lt;br /&gt;
     flavour = flavour,   -- This will be a table&lt;br /&gt;
     facedata = facedata, -- This will be a table&lt;br /&gt;
     target = target,&lt;br /&gt;
     destination = destination,&lt;br /&gt;
     reward = reward,&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Remember, the &amp;lt;code&amp;gt;AddAdvert()&amp;lt;/code&amp;gt; method takes three arguments: The advert text, the &amp;lt;code&amp;gt;onChat&amp;lt;/code&amp;gt; function and the &amp;lt;code&amp;gt;onDelete&amp;lt;/code&amp;gt; function. It also returns a unique number, which lends itself nicely to storing the information away. That same unique number is passed to the onChat function, allowing onChat to check that stored information.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;onDelete()&amp;lt;/code&amp;gt; function (again, we call it that by convention only) also accepts this reference as its argument, and is called whenever an advert is destroyed, whether that destruction be explicit (&amp;lt;code&amp;gt;RemoveAdvert()&amp;lt;/code&amp;gt;) or implicit (the player hyperspaces away).&lt;br /&gt;
&lt;br /&gt;
So, we can track adverts that have been created, and stop tracking any that have gone away. I'll do that using the reference returned by &amp;lt;code&amp;gt;AddAvert()&amp;lt;/code&amp;gt; as the key to a file-scoped local table:&lt;br /&gt;
&lt;br /&gt;
 local all_flavours = Translate:GetFlavours('TestModule')&lt;br /&gt;
 local all_adverts = {}&lt;br /&gt;
 &lt;br /&gt;
 local onChat = function (form, ref, option)&lt;br /&gt;
     form:Clear()&lt;br /&gt;
     form:SetFace(all_adverts[ref].facedata)&lt;br /&gt;
     form:SetMessage(all_adverts[ref].flavour.title)&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 local onDelete = function (advert_ref)&lt;br /&gt;
     all_adverts[advert_ref] = nil&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 local onCreateBB = function (station)&lt;br /&gt;
     local flavour = all_flavours[Engine.rand:Integer(1,#all_flavours)]&lt;br /&gt;
     advert_ref = station:AddAdvert(flavour.title,onChat,onDelete)&lt;br /&gt;
     local female = Engine.rand:Integer(1) == 1&lt;br /&gt;
     all_adverts[advert_ref] = {&lt;br /&gt;
         station = station,&lt;br /&gt;
         flavour = flavour,&lt;br /&gt;
         facedata = {&lt;br /&gt;
             female = female,&lt;br /&gt;
             name = NameGen.FullName(female),&lt;br /&gt;
             seed = Engine.rand:Integer()&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 EventQueue.onCreateBB:Connect(onCreateBB)&lt;br /&gt;
&lt;br /&gt;
==Tracking missions==&lt;br /&gt;
&lt;br /&gt;
This is less of a challenge. Whenever &amp;lt;code&amp;gt;Player.AddMission()&amp;lt;/code&amp;gt; is called, it returns a reference to the mission. That reference can be stored in a file-local table, and that table can be iterated through, and &amp;lt;code&amp;gt;Player.GetMission()&amp;lt;/code&amp;gt; called on each one. We can wrap these functions up:&lt;br /&gt;
&lt;br /&gt;
 local missionrefs = {}&lt;br /&gt;
 &lt;br /&gt;
 local AddMission = function(mission)&lt;br /&gt;
     table.insert(missionrefs,Game.player:AddMission(mission))&lt;br /&gt;
     return missionrefs[#missionrefs]&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 local RemoveMission = function(mref)&lt;br /&gt;
     for i,m in ipairs(missionrefs) do&lt;br /&gt;
         if m == mref then&lt;br /&gt;
             table.remove(missionrefs,i)&lt;br /&gt;
         end&lt;br /&gt;
     end&lt;br /&gt;
     Game.player:RemoveMission(mref)&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
Now, instead of calling &amp;lt;code&amp;gt;Game.player:AddMission()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Game.Player:RemoveMission()&amp;lt;/code&amp;gt;, we just directly call our local functions, &amp;lt;code&amp;gt;AddMission()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;RemoveMission()&amp;lt;/code&amp;gt;. They will send their argument on to the instance in &amp;lt;code&amp;gt;Game.player&amp;lt;/code&amp;gt;, and also store or remove the mission ref in the missionrefs table. There is now a record of which missions belong to this script.&lt;br /&gt;
&lt;br /&gt;
==Serializing: Packing away for saving and loading==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;Serializer&amp;lt;/code&amp;gt; object provides one method: &amp;lt;code&amp;gt;Register&amp;lt;/code&amp;gt;. It takes three arguments. The first is a name; a simple string with which to uniquely identify this script. It's probably sensible to re-use the name that was used for the &amp;lt;code&amp;gt;Translate&amp;lt;/code&amp;gt; object's flavour methods. The second argument is the name of a function which will return a single table. The third argument is a function that will accept a single table.&lt;br /&gt;
&lt;br /&gt;
The second argument is your '''serializer''' function. The third is your '''unserializer''' function. By convention, we name these &amp;lt;code&amp;gt;serialize&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;unserialize&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;serialize&amp;lt;/code&amp;gt; must return a table. This table must contain everything that you need to store to get your script working after a reload. It will be run when the player saves the game.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;unserialize&amp;lt;/code&amp;gt; accepts a table, and does something with it. It will be run by the serializer after the game is loaded, immediately before the &amp;lt;code&amp;gt;onGameStart&amp;lt;/code&amp;gt; event is triggered. It is passed the data that serialize returned at save time.&lt;br /&gt;
&lt;br /&gt;
The most common way to deal with this is as follows (and this is very cut down):&lt;br /&gt;
&lt;br /&gt;
 local table_stuff_this_script_uses = {}&lt;br /&gt;
 local loaded_data&lt;br /&gt;
 &lt;br /&gt;
 -- The rest of the script goes here!&lt;br /&gt;
 &lt;br /&gt;
 local onGameStart&lt;br /&gt;
     if loaded_data then&lt;br /&gt;
         for k,v in loaded_data.table_stuff_this_script_uses do&lt;br /&gt;
             table_stuff_this_script_uses[k] = v&lt;br /&gt;
         end&lt;br /&gt;
         loaded_data = nil&lt;br /&gt;
     else&lt;br /&gt;
         -- New game; do other stuff here perhaps&lt;br /&gt;
     end&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 local serialize = function ()&lt;br /&gt;
     return {table_stuff_this_script_uses = table_stuff_this_script_uses}&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 local unserialize = function (data)&lt;br /&gt;
 	loaded_data = data&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 EventQueue.onGameStart:Connect(onGameStart)&lt;br /&gt;
 Serializer:Register(&amp;quot;TestModule&amp;quot;, serialize, unserialize)&lt;br /&gt;
&lt;br /&gt;
Now, combining that with the examples above, we get the following, which will save and load both the adverts and the missions that the script created:&lt;br /&gt;
&lt;br /&gt;
 local all_flavours = Translate:GetFlavours('TestModule')&lt;br /&gt;
 local all_adverts = {}&lt;br /&gt;
 local missionrefs = {}&lt;br /&gt;
 &lt;br /&gt;
 local onGameStart = function ()&lt;br /&gt;
 	all_adverts = {}&lt;br /&gt;
 	missions = {}&lt;br /&gt;
 &lt;br /&gt;
 	if not loaded_data then return end&lt;br /&gt;
 &lt;br /&gt;
 	for k,ad in pairs(loaded_data.all_adverts) do&lt;br /&gt;
 		local ref = ad.station:AddAdvert(ad.flavour.title, onChat, onDelete)&lt;br /&gt;
 		all_adverts[ref] = ad&lt;br /&gt;
 	end&lt;br /&gt;
 	for k,mission in pairs(loaded_data.missions) do&lt;br /&gt;
 		local mref = Game.player:AddMission(mission)&lt;br /&gt;
 		table.insert(missions,mref)&lt;br /&gt;
 	end&lt;br /&gt;
 &lt;br /&gt;
 	loaded_data = nil&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 local onChat = function (form, ref, option)&lt;br /&gt;
     form:Clear()&lt;br /&gt;
     form:SetFace(all_adverts[ref].facedata)&lt;br /&gt;
     form:SetMessage(all_adverts[ref].flavour.title)&lt;br /&gt;
     -- some selective code here that will add missions, etc.&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 -- Other event handlers here that might change or remove missions or adverts&lt;br /&gt;
 &lt;br /&gt;
 local onDelete = function (advert_ref)&lt;br /&gt;
     all_adverts[advert_ref] = nil&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 local onCreateBB = function (station)&lt;br /&gt;
     local flavour = all_flavours[Engine.rand:Integer(1,#all_flavours)]&lt;br /&gt;
     advert_ref = station:AddAdvert(flavour.title,onChat,onDelete)&lt;br /&gt;
     local female = Engine.rand:Integer(1) == 1&lt;br /&gt;
     all_adverts[advert_ref] = {&lt;br /&gt;
         station = station,&lt;br /&gt;
         flavour = flavour,&lt;br /&gt;
         facedata = {&lt;br /&gt;
             female = female,&lt;br /&gt;
             name = NameGen.FullName(female),&lt;br /&gt;
             seed = Engine.rand:Integer()&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 local AddMission = function(mission)&lt;br /&gt;
     table.insert(missionrefs,Game.player:AddMission(mission))&lt;br /&gt;
     return missionrefs[#missionrefs]&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 local RemoveMission = function(mref)&lt;br /&gt;
     for i,m in ipairs(missionrefs) do&lt;br /&gt;
         if m == mref then&lt;br /&gt;
             table.remove(missionrefs,i)&lt;br /&gt;
         end&lt;br /&gt;
     end&lt;br /&gt;
     Game.player:RemoveMission(mref)&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 local serialize = function ()&lt;br /&gt;
     local missions_in_full = {}&lt;br /&gt;
     for k,mref in ipairs(missions) do&lt;br /&gt;
         table.insert(missions_in_full,Game.player:GetMission(mref))&lt;br /&gt;
     end&lt;br /&gt;
     return { all_adverts = all_adverts, missions = missions_in_full }&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 local unserialize = function (data)&lt;br /&gt;
     loaded_data = data&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 EventQueue.onGameStart:Connect(onGameStart)&lt;br /&gt;
 EventQueue.onCreateBB:Connect(onCreateBB)&lt;br /&gt;
 Serializer:Register(&amp;quot;TestModule&amp;quot;, serialize, unserialize)&lt;br /&gt;
&lt;br /&gt;
Although the example is functional, it has been coded with brevity alone in mind. I would not recommend using this as the basis for a mission without at least completely rewriting &amp;lt;code&amp;gt;onChat()&amp;lt;/code&amp;gt;, and possibly tidying up the temporary loop variable names.&lt;br /&gt;
&lt;br /&gt;
The codedoc is complete and accurate, and the scripts provided with Pioneer are good examples themselves. The API is extensive, but if you find that there are additonal things you would like to be able to do, or information you would like from Pioneer, the dev team are willing to extend the API to accommodate script writers. Simply create a new issue on the [https://github.com/pioneerspacesim/pioneer/issues Github issue tracker].&lt;br /&gt;
&lt;br /&gt;
Help is also always available on the [http://pioneerspacesim.net/forum Pioneer forum] on SpaceSimCentral.com, and many of the dev team can be found on IRC at all hours - simply connect to Freenode (irc.freenode.net channel #pioneer).&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Interacting_with_the_game:_Event-based_programming&amp;diff=58</id>
		<title>Interacting with the game: Event-based programming</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Interacting_with_the_game:_Event-based_programming&amp;diff=58"/>
		<updated>2012-09-10T23:26:31Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: minor formatting tweaks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Lua scripts are all executed at startup. If you were to add a single file named &amp;lt;code&amp;gt;hello_world.lua&amp;lt;/code&amp;gt; to the '''data/modules''' directory containing the following:&lt;br /&gt;
&lt;br /&gt;
 print(&amp;quot;Hello, World!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
you would literally see the words, &amp;quot;''Hello, World!''&amp;quot; appear in Pioneer's output (if running in a terminal) shortly before the main menu appeared. You would also see it in the Lua console, if you were to open it.&lt;br /&gt;
&lt;br /&gt;
All file-scoped imperative statements in all Lua files are executed at that time. The way to get Lua code to interact with the game itself, beyond that time, is to write functions and to connect them to event handlers. Many events are triggered by Pioneer during the course of play, all of which will cause any functions which are connected to them, to run. Most will provide those functions with arguments.&lt;br /&gt;
&lt;br /&gt;
Here is a quick list of some of the more commonly used events:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;onGameStart&amp;lt;/code&amp;gt; is triggered when the player clicks on a new game button in the main menu, or when the player loads a game.&lt;br /&gt;
* &amp;lt;code&amp;gt;onEnterSystem&amp;lt;/code&amp;gt; is triggered whenever any ship arrives in the current star system after a hyperspace journey.&lt;br /&gt;
* &amp;lt;code&amp;gt;onLeaveSystem&amp;lt;/code&amp;gt; is triggered whenever any ship leaves the current star system by hyperspacing.&lt;br /&gt;
* &amp;lt;code&amp;gt;onShipDestroyed&amp;lt;/code&amp;gt; is triggered whenever any ship is destroyed.&lt;br /&gt;
* &amp;lt;code&amp;gt;onShipDocked&amp;lt;/code&amp;gt; is triggered whenever any ship docks at a starport.&lt;br /&gt;
&lt;br /&gt;
There are many more. All are fully documented in the [http://eatenbyagrue.org/f/pioneer/codedoc/ Pioneer Codedoc]. Of the five that I have listed, only &amp;lt;code&amp;gt;onGameStart&amp;lt;/code&amp;gt; does not provide the function with any arguments. The other four provide a reference to the ship in question, and the latter two each also provide an additional argument (a reference to the attacker, and the starport, respectively).&lt;br /&gt;
&lt;br /&gt;
==Writing a function for an event==&lt;br /&gt;
&lt;br /&gt;
An event handling function does not have to return anything. It will be passed any arguments specified in the documentation, which it can either deal with, or ignore. It has access to any variables that are declared in the same file scope, including named functions and tables.&lt;br /&gt;
&lt;br /&gt;
The following function sends a message to the player's ship console, welcoming them to Pioneer:&lt;br /&gt;
&lt;br /&gt;
 local welcome = function ()&lt;br /&gt;
     UI.Message ('Welcome to Pioneer!')&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
The next one expects a ship, and if that ship is the player, it greets them again:&lt;br /&gt;
&lt;br /&gt;
 local greetShip = function (ship)&lt;br /&gt;
     if ship:IsPlayer() then&lt;br /&gt;
         UI.Message ('Hope you had an enjoyable hyperjump.')&lt;br /&gt;
     end&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
All that remains is to attach these functions to events. The first, I'm going to attach to the &amp;lt;code&amp;gt;onGameStart&amp;lt;/code&amp;gt; event, the second, I'm going to attach to &amp;lt;code&amp;gt;onEnterSystem&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 EventQueue.onGameStart:Connect(welcome)&lt;br /&gt;
 EventQueue.onEnterSystem:Connect(greetShip)&lt;br /&gt;
&lt;br /&gt;
EventQueue is a global table containing all of the events, which themselves have methods to connect and disconnect functions as handlers. &amp;lt;code&amp;gt;Connect()&amp;lt;/code&amp;gt; sets the function up as an event handler, and &amp;lt;code&amp;gt;Disconnect()&amp;lt;/code&amp;gt; is its (rarely required) counterpart.&lt;br /&gt;
&lt;br /&gt;
It's actually common practice in Pioneer to name the function after the event:&lt;br /&gt;
&lt;br /&gt;
 local onGameStart = function ()&lt;br /&gt;
     UI.Message ('Welcome to Pioneer!')&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 EventQueue.onGameStart:Connect(onGameStart)&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Interacting_with_the_game:_Event-based_programming&amp;diff=57</id>
		<title>Interacting with the game: Event-based programming</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Interacting_with_the_game:_Event-based_programming&amp;diff=57"/>
		<updated>2012-09-10T22:42:58Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: initial import from github&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Lua scripts are all executed at startup. If you were to add a single file named &amp;lt;code&amp;gt;hello_world.lua&amp;lt;/code&amp;gt; to the '''data/modules''' directory containing the following:&lt;br /&gt;
&lt;br /&gt;
 print(&amp;quot;Hello, World!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
you would literally see the words, &amp;quot;''Hello, World''!&amp;quot; appear in Pioneer's output (if running in a terminal) shortly before the main menu appeared. You would also see it in the Lua console, if you were to open it.&lt;br /&gt;
&lt;br /&gt;
All file-scoped imperative statements in all Lua files are executed at that time. The way to get Lua code to interact with the game itself, beyond that time, is to write functions and to connect them to event handlers. Many events are triggered by Pioneer during the course of play, all of which will cause any functions which are connected to them, to run. Most will provide those functions with arguments.&lt;br /&gt;
&lt;br /&gt;
Here is a quick list of some of the more commonly used events:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;onGameStart&amp;lt;/code&amp;gt; is triggered when the player clicks on a new game button in the main menu, or when the player loads a game.&lt;br /&gt;
* &amp;lt;code&amp;gt;onEnterSystem&amp;lt;/code&amp;gt; is triggered whenever any ship arrives in the current star system after a hyperspace journey.&lt;br /&gt;
* &amp;lt;code&amp;gt;onLeaveSystem&amp;lt;/code&amp;gt; is triggered whenever any ship leaves the current star system by hyperspacing.&lt;br /&gt;
* &amp;lt;code&amp;gt;onShipDestroyed&amp;lt;/code&amp;gt; is triggered whenever any ship is destroyed.&lt;br /&gt;
* &amp;lt;code&amp;gt;onShipDocked&amp;lt;/code&amp;gt; is triggered whenever any ship docks at a starport.&lt;br /&gt;
&lt;br /&gt;
There are many more. All are fully documented in the [http://eatenbyagrue.org/f/pioneer/codedoc/ Pioneer Codedoc]. Of the five that I have listed, only onGameStart does not provide the function with any arguments. The other four provide a reference to the ship in question, and the latter two each also provide an additional argument (a reference to the attacker, and the starport, respectively).&lt;br /&gt;
&lt;br /&gt;
==Writing a function for an event==&lt;br /&gt;
&lt;br /&gt;
An event handling function does not have to return anything. It will be passed any arguments specified in the documentation, which it can either deal with, or ignore. It has access to any variables that are declared in the same file scope, including named functions and tables.&lt;br /&gt;
&lt;br /&gt;
The following function sends a message to the player's ship console, welcoming them to Pioneer:&lt;br /&gt;
&lt;br /&gt;
 local welcome = function ()&lt;br /&gt;
     UI.Message ('Welcome to Pioneer!')&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
The next one expects a ship, and if that ship is the player, it greets them again:&lt;br /&gt;
&lt;br /&gt;
 local greetShip = function (ship)&lt;br /&gt;
     if ship:IsPlayer() then&lt;br /&gt;
         UI.Message ('Hope you had an enjoyable hyperjump.')&lt;br /&gt;
     end&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
All that remains is to attach these functions to events. The first, I'm going to attach to the onGameStart event, the second, I'm going to attach to onEnterSystem:&lt;br /&gt;
&lt;br /&gt;
 EventQueue.onGameStart:Connect(welcome)&lt;br /&gt;
 EventQueue.onEnterSystem:Connect(greetShip)&lt;br /&gt;
&lt;br /&gt;
EventQueue is a global table containing all of the events, which themselves have methods to connect and disconnect functions as handlers. &amp;lt;code&amp;gt;Connect()&amp;lt;/code&amp;gt; sets the function up as an event handler, and &amp;lt;code&amp;gt;Disconnect()&amp;lt;/code&amp;gt; is its (rarely required) counterpart.&lt;br /&gt;
&lt;br /&gt;
It's actually common practice in Pioneer to name the function after the event:&lt;br /&gt;
&lt;br /&gt;
 local onGameStart = function ()&lt;br /&gt;
     UI.Message ('Welcome to Pioneer!')&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 EventQueue.onGameStart:Connect(onGameStart)&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=56</id>
		<title>Pioneer Wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=56"/>
		<updated>2012-09-10T22:34:29Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: menu update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pioneer is a space adventure game set in the milkyway galaxy at the turn of the 31st century. The game is open-ended, and you are free to explore the millions of star systems in the game. You can land on planets, slingshot past gas giants, and burn yourself to a crisp flying between binary star systems. &lt;br /&gt;
&lt;br /&gt;
* [http://pioneerspacesim.net/download Download Pioneer] for Windows, Linux and Mac OSX&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/pioneerspacesim/files/nightly/ Development Builds] (warning, may be more unstable than a release) &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Please make this wiki nice. Copy the content over from the [https://github.com/pioneerspacesim/pioneer/wiki GitHub wiki], add stuff about mods, dev, whatever. Be awesome! [[Getting started|How to get started]].&lt;br /&gt;
&lt;br /&gt;
And write a nice front page and get rid of this, ok? :)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
{|width=100%&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#bbffbb; border:2px solid #99ee99;  padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Community===&lt;br /&gt;
* [http://pioneerspacesim.net/ Pioneer Space Sim Homepage]&lt;br /&gt;
* [http://pioneerspacesim.net/forum Forums]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [http://twitter.com/pioneerspacesim @pioneerspacesim] on Twitter&lt;br /&gt;
* [[Media Coverage]]&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#f0f0ff; border:2px solid #c6c9ff; padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Content Creation===&lt;br /&gt;
* [[Mods]]&lt;br /&gt;
* [[Introduction to Mission Scripting]]&lt;br /&gt;
** [[Interacting with the game: Event-based programming]]&lt;br /&gt;
** [[Interacting with the player: BBS forms]]&lt;br /&gt;
** [[Surviving a reload]]&lt;br /&gt;
* [http://eatenbyagrue.org/f/pioneer/codedoc/ LUA API Reference]&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#fff3f3; border:2px solid #ffc9c9; padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
===Development===&lt;br /&gt;
* [[Getting Started with Development]]&lt;br /&gt;
* [[Development Model]]&lt;br /&gt;
* [[Design_Workflow|Design and Project Management Workflow]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pioneer is brung to you by a flock of [https://github.com/pioneerspacesim/pioneer/blob/master/AUTHORS.txt opensource beardy-weirdies], and is [http://www.gnu.org/licenses/gpl.html Free Software]&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Introduction_to_Mission_Scripting&amp;diff=55</id>
		<title>Introduction to Mission Scripting</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Introduction_to_Mission_Scripting&amp;diff=55"/>
		<updated>2012-09-10T22:33:29Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: initial import of mission scripting intro&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pioneer is extensible through the Lua scripting language. This document is intended to take the reader through the basics of coding up a mission for Pioneer, with a worked example. The assumption is made that the reader is already aware of basic programming concepts, and in particular has some knowledge of the Lua programming language.&lt;br /&gt;
&lt;br /&gt;
If you are not familiar with Lua, the [http://lua-users.org/wiki/LearningLua lua-users wiki: Learning Lua] page is a good place to start.&lt;br /&gt;
&lt;br /&gt;
==Pioneer's Lua environment==&lt;br /&gt;
Pioneer contains a full Lua interpreter. There are three instances of the interpreter; one for defining models, one for defining the galaxy, and one for writing mission scripts. This document is focused exclusively on the latter of the three.&lt;br /&gt;
&lt;br /&gt;
When Pioneer is started, the universe is generated. After the universe is generated, Pioneer traverses the data/libs directory and all subdirectories, looking for files ending in the &amp;lt;code&amp;gt;.lua&amp;lt;/code&amp;gt; extension. Each of these files are loaded into the interpreter and run. After these are run, Pioneer traverses the data/modules directory and does exactly the same thing. After this, the main menu is shown, and the player can begin a game.&lt;br /&gt;
&lt;br /&gt;
The order in which the Lua scripts are loaded and run is not strictly defined, other than the fact that scripts in the '''data/libs directory''' will be executed before scripts in the '''data/modules''' directory.&lt;br /&gt;
&lt;br /&gt;
Any globally defined functions or variables defined in those scripts will be available to any other scripts. We recommend that any functions or variables not explicitly intended for use by other scripts be declared with the &amp;lt;code&amp;gt;local&amp;lt;/code&amp;gt; keyword, which will make them available only within the scope of the current file.&lt;br /&gt;
&lt;br /&gt;
Chapters:&lt;br /&gt;
* [[Interacting with the game: Event-based programming]]&lt;br /&gt;
* [[Interacting with the player: BBS forms]]&lt;br /&gt;
* [[Surviving a reload]]&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Media_Coverage&amp;diff=54</id>
		<title>Media Coverage</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Media_Coverage&amp;diff=54"/>
		<updated>2012-09-10T21:32:57Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: Added mobDB article&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following websites or publications have mentioned or featured Pioneer.&lt;br /&gt;
&lt;br /&gt;
* [http://www.rockpapershotgun.com/2011/12/06/back-to-frontier-pioneer/ Rock Paper Shotgun] interviews the development team.&lt;br /&gt;
* [http://github.com/blog/1228-game-bytes-2/ Github Game Bytes] blog entry featuring Pioneer.&lt;br /&gt;
* [http://www.moddb.com/games/pioneer/ ModDB]  article featuring Pioneer.&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=53</id>
		<title>Pioneer Wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=53"/>
		<updated>2012-09-10T12:23:59Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pioneer is a space adventure game set in the milkyway galaxy at the turn of the 31st century. The game is open-ended, and you are free to explore the millions of star systems in the game. You can land on planets, slingshot past gas giants, and burn yourself to a crisp flying between binary star systems. &lt;br /&gt;
&lt;br /&gt;
* [http://pioneerspacesim.net/download Download Pioneer] for Windows, Linux and Mac OSX&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/pioneerspacesim/files/nightly/ Development Builds] (warning, may be more unstable than a release) &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Please make this wiki nice. Copy the content over from the [https://github.com/pioneerspacesim/pioneer/wiki GitHub wiki], add stuff about mods, dev, whatever. Be awesome! [[Getting started|How to get started]].&lt;br /&gt;
&lt;br /&gt;
And write a nice front page and get rid of this, ok? :)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
{|width=100%&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#bbffbb; border:2px solid #99ee99;  padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Community===&lt;br /&gt;
* [http://pioneerspacesim.net/ Pioneer Space Sim Homepage]&lt;br /&gt;
* [http://pioneerspacesim.net/forum Forums]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [http://twitter.com/pioneerspacesim @pioneerspacesim] on Twitter&lt;br /&gt;
* [[Media Coverage]]&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#f0f0ff; border:2px solid #c6c9ff; padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Content Creation===&lt;br /&gt;
* [[Mods]]&lt;br /&gt;
* [[Introduction to Mission Scripting]]&lt;br /&gt;
* [http://eatenbyagrue.org/f/pioneer/codedoc/ LUA API Reference]&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#fff3f3; border:2px solid #ffc9c9; padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Development===&lt;br /&gt;
* [[Getting Started with Development]]&lt;br /&gt;
* [[Development Model]]&lt;br /&gt;
* [[Design_Workflow|Design and Project Management Workflow]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pioneer is brung to you by a flock of [https://github.com/pioneerspacesim/pioneer/blob/master/AUTHORS.txt opensource beardy-weirdies], and is [http://www.gnu.org/licenses/gpl.html Free Software]&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=49</id>
		<title>Pioneer Wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=49"/>
		<updated>2012-09-07T11:31:33Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pioneer is a space adventure game set in the milkyway galaxy at the turn of the 31st century. The game is open-ended, and you are free to explore the millions of star systems in the game. You can land on planets, slingshot past gas giants, and burn yourself to a crisp flying between binary star systems. &lt;br /&gt;
&lt;br /&gt;
* [http://pioneerspacesim.net/download Download Pioneer] for Windows, Linux and Mac OSX&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/pioneerspacesim/files/nightly/ Development Builds] (warning, may be more unstable than a release) &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Please make this wiki nice. Copy the content over from the [https://github.com/pioneerspacesim/pioneer/wiki GitHub wiki], add stuff about mods, dev, whatever. Be awesome! [[Getting started|How to get started]].&lt;br /&gt;
&lt;br /&gt;
And write a nice front page and get rid of this, ok? :)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
{|width=100%&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#bbffbb; border:2px solid #99ee99;  padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Community===&lt;br /&gt;
* [http://pioneerspacesim.net/ Pioneer Space Sim Homepage]&lt;br /&gt;
* [http://pioneerspacesim.net/forum Forums]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [http://twitter.com/pioneerspacesim @pioneerspacesim] on Twitter&lt;br /&gt;
* [[Media Coverage]]&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#f0f0ff; border:2px solid #c6c9ff; padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Content Creation===&lt;br /&gt;
* [[Mods]]&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#fff3f3; border:2px solid #ffc9c9; padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Development===&lt;br /&gt;
* [[Getting Started with Development]]&lt;br /&gt;
* [[Our Development Model]]&lt;br /&gt;
* [[Design_Workflow|Our Design and Project Management Workflow]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pioneer is brung to you by a flock of [https://github.com/pioneerspacesim/pioneer/blob/master/AUTHORS.txt opensource beardy-weirdies], and is [http://www.gnu.org/licenses/gpl.html Free Software]&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Getting_Started_with_Development&amp;diff=48</id>
		<title>Getting Started with Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Getting_Started_with_Development&amp;diff=48"/>
		<updated>2012-09-07T11:30:16Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: Imported getting started in development from github&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Getting the Code==&lt;br /&gt;
Pioneer is managed using Git, and is stored on [http://github.com Github]. The [http://github.com/pioneerspacesim/pioneer official repository] is the best one to get. To get it:&lt;br /&gt;
&lt;br /&gt;
 git clone git://github.com/pioneerspacesim/pioneer.git&lt;br /&gt;
&lt;br /&gt;
This will get you on the &amp;quot;master&amp;quot; branch, which is where new code is merged. This is the latest and greatest development and is quite unstable. To build a specific alpha, you need to checkout the appropriate release tag:&lt;br /&gt;
&lt;br /&gt;
 git checkout alpha20&lt;br /&gt;
&lt;br /&gt;
==Compiling Pioneer on Windows==&lt;br /&gt;
An MSVC 2008 project file can be found in the win32/vc2008 folder. Open this project file and Pioneer should build just fine. All dependencies are provided so you don't need to compile any libraries.&lt;br /&gt;
&lt;br /&gt;
Copy the .dll files from win32/vc2008 into the root folder (the one containing data, src, win32 directories), and you will be able to run the pioneer .exe file you just compiled.&lt;br /&gt;
&lt;br /&gt;
==Compiling Pioneer on Linux==&lt;br /&gt;
===Requirements===&lt;br /&gt;
&lt;br /&gt;
* libtool&lt;br /&gt;
* sigc++-2.0&lt;br /&gt;
* freetype2&lt;br /&gt;
* GL and GLU&lt;br /&gt;
* GLEW&lt;br /&gt;
* SDL 1.2&lt;br /&gt;
* SDLimage&lt;br /&gt;
&lt;br /&gt;
Since pioneer is currently only available from the source repository, you also need autoconf and automake in order to generate the ./configure script (by running ./bootstrap)&lt;br /&gt;
&lt;br /&gt;
You also need git to check the source code out from the repository.&lt;br /&gt;
&lt;br /&gt;
===Ubuntu commands to install all the requisite libraries===&lt;br /&gt;
&lt;br /&gt;
These may work on other versions of Ubuntu, and possibly Debian or their derivatives too.&lt;br /&gt;
&lt;br /&gt;
====Ubuntu 10.4====&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install libsigc++-2.0-dev libglut3-dev libglew1.5-dev libsdl1.2-dev libvorbis-dev libsdl-image1.2-dev dh-autoreconf git libfreetype6-dev&lt;br /&gt;
&lt;br /&gt;
====Ubuntu 11.10====&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install libsigc++-2.0-dev freeglut3-dev libglew1.5-dev libsdl1.2-dev libvorbis-dev libsdl-image1.2-dev dh-autoreconf git libfreetype6-dev&lt;br /&gt;
&lt;br /&gt;
===Fedora commands to install all the requisite libraries===&lt;br /&gt;
&lt;br /&gt;
These might work on other Fedora verisons, and Redhat-based systems.&lt;br /&gt;
&lt;br /&gt;
====Fedora 16====&lt;br /&gt;
&lt;br /&gt;
 yum install libtool libsigc++20-devel mesa-libGL-devel mesa-libGLU-devel glew-devel SDL-devel SDL_image-devel freetype-devel libvorbis-devel libpng-devel gcc-c++&lt;br /&gt;
&lt;br /&gt;
===Building it===&lt;br /&gt;
&lt;br /&gt;
 ./bootstrap&lt;br /&gt;
 ./configure&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Currently Pioneer runs from where it is built, and doesn't require (or work with) '''make install'''. To run it:&lt;br /&gt;
&lt;br /&gt;
 ./src/pioneer&lt;br /&gt;
&lt;br /&gt;
===Debugging===&lt;br /&gt;
&lt;br /&gt;
For developers, gdb can be used for debugging&lt;br /&gt;
&lt;br /&gt;
 gdb ./src/pioneer&lt;br /&gt;
 run&lt;br /&gt;
&lt;br /&gt;
Bugs, and feature requests, should be logged on the issue tracker.&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=47</id>
		<title>Pioneer Wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=47"/>
		<updated>2012-09-07T11:22:33Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pioneer is a space adventure game set in the milkyway galaxy at the turn of the 31st century. The game is open-ended, and you are free to explore the millions of star systems in the game. You can land on planets, slingshot past gas giants, and burn yourself to a crisp flying between binary star systems. &lt;br /&gt;
&lt;br /&gt;
* [http://pioneerspacesim.net/download Download Pioneer] for Windows, Linux and Mac OSX&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/pioneerspacesim/files/nightly/ Development Builds] (warning, may be more unstable than a release) &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Please make this wiki nice. Copy the content over from the [https://github.com/pioneerspacesim/pioneer/wiki GitHub wiki], add stuff about mods, dev, whatever. Be awesome! [[Getting started|How to get started]].&lt;br /&gt;
&lt;br /&gt;
And write a nice front page and get rid of this, ok? :)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
{|width=100%&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#bbffbb; border:2px solid #99ee99;  padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Community===&lt;br /&gt;
* [http://pioneerspacesim.net/ Pioneer Space Sim Homepage]&lt;br /&gt;
* [http://pioneerspacesim.net/forum Forums]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [https://twitter.com/pioneerspacesim @pioneerspacesim] on Twitter&lt;br /&gt;
* [[Media Coverage]]&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#f0f0ff; border:2px solid #c6c9ff; padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Content Creation===&lt;br /&gt;
* [[Mods]]&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#fff3f3; border:2px solid #ffc9c9; padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Development===&lt;br /&gt;
* [[Getting Started with Development]]&lt;br /&gt;
* [[Our Development Model]]&lt;br /&gt;
* [[Design_Workflow|Our Design and Project Management Workflow]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pioneer is brung to you by a flock of [https://github.com/pioneerspacesim/pioneer/blob/master/AUTHORS.txt opensource beardy-weirdies], and is [http://www.gnu.org/licenses/gpl.html Free Software]&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=46</id>
		<title>Pioneer Wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=46"/>
		<updated>2012-09-07T11:19:15Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: Beginnings of a nice main page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pioneer is a space adventure game set in the milkyway galaxy at the turn of the 31st century. The game is open-ended, and you are free to explore the millions of star systems in the game. You can land on planets, slingshot past gas giants, and burn yourself to a crisp flying between binary star systems. &lt;br /&gt;
&lt;br /&gt;
[http://pioneerspacesim.net/download Download Pioneer] for Windows, Linux and Mac OSX&lt;br /&gt;
[http://sourceforge.net/projects/pioneerspacesim/files/nightly/ Development Builds] (warning, may be more unstable than a release) &lt;br /&gt;
----&lt;br /&gt;
Please make this wiki nice. Copy the content over from the [https://github.com/pioneerspacesim/pioneer/wiki GitHub wiki], add stuff about mods, dev, whatever. Be awesome! [[Getting started|How to get started]].&lt;br /&gt;
&lt;br /&gt;
And write a nice front page and get rid of this, ok? :)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
{|width=100%&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#bbffbb; border:2px solid #99ee99;  padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Community===&lt;br /&gt;
* [http://pioneerspacesim.net/ Pioneer Space Sim Homepage]&lt;br /&gt;
* [http://pioneerspacesim.net/forum Forums]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [https://twitter.com/pioneerspacesim @pioneerspacesim] on Twitter&lt;br /&gt;
* [[Media Coverage]]&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#f0f0ff; border:2px solid #c6c9ff; padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Content Creation===&lt;br /&gt;
* [[Mods]]&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;background:#fff3f3; border:2px solid #ffc9c9; padding:2px 2px 4px 4px; vertical-align: top&amp;quot;|&lt;br /&gt;
===Development===&lt;br /&gt;
* [[Our Development Model]]&lt;br /&gt;
* [[Design_Workflow|Our Design and Project Management Workflow]]&lt;br /&gt;
|}&lt;br /&gt;
Pioneer is brung to you by a flock of [https://github.com/pioneerspacesim/pioneer/blob/master/AUTHORS.txt opensource beardy-weirdies], and is [http://www.gnu.org/licenses/gpl.html Free Software]&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=45</id>
		<title>Pioneer Wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=45"/>
		<updated>2012-09-07T10:00:44Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pioneer is a space adventure game set in the milkyway galaxy at the turn of the 31st century.&lt;br /&gt;
&lt;br /&gt;
The game is open-ended, and you are free to explore the millions of star systems in the game. You can land on planets, slingshot past gas giants, and burn yourself to a crisp flying between binary star systems.&lt;br /&gt;
&lt;br /&gt;
When Pioneer is finished there will be many ways to make ends meet: piracy, smuggling, bounty-hunting, mining, doing missions for the various factions fighting for power, freedom or self-determination&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Please make this wiki nice. Copy the content over from the [https://github.com/pioneerspacesim/pioneer/wiki GitHub wiki], add stuff about mods, dev, whatever. Be awesome! [[Getting started|How to get started]].&lt;br /&gt;
&lt;br /&gt;
And write a nice front page and get rid of this, ok? :)&lt;br /&gt;
&lt;br /&gt;
Pioneer is brung to you by a flock of [https://github.com/pioneerspacesim/pioneer/blob/master/AUTHORS.txt opensource beardy-weirdies], and is [http://www.gnu.org/licenses/gpl.html Free Software]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Site Map==&lt;br /&gt;
&lt;br /&gt;
===General===&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [[Mods]]&lt;br /&gt;
* [[Media Coverage]]&lt;br /&gt;
&lt;br /&gt;
===Development===&lt;br /&gt;
* [[Our Development Model]]&lt;br /&gt;
* [[Design_Workflow|Our Design and Project Management Workflow]]&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Media_Coverage&amp;diff=43</id>
		<title>Media Coverage</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Media_Coverage&amp;diff=43"/>
		<updated>2012-09-07T09:59:56Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: moved In the media to Media Coverage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following websites or publications have mentioned or featured Pioneer.&lt;br /&gt;
&lt;br /&gt;
* [http://www.rockpapershotgun.com/2011/12/06/back-to-frontier-pioneer/ Rock Paper Shotgun] interviews the development team.&lt;br /&gt;
* [http://github.com/blog/1228-game-bytes-2/ Github Game Bytes] blog entry featuring Pioneer.&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=In_the_media&amp;diff=44</id>
		<title>In the media</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=In_the_media&amp;diff=44"/>
		<updated>2012-09-07T09:59:56Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: moved In the media to Media Coverage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Media Coverage]]&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Media_Coverage&amp;diff=42</id>
		<title>Media Coverage</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Media_Coverage&amp;diff=42"/>
		<updated>2012-09-07T09:58:06Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: Minor tidying up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following websites or publications have mentioned or featured Pioneer.&lt;br /&gt;
&lt;br /&gt;
* [http://www.rockpapershotgun.com/2011/12/06/back-to-frontier-pioneer/ Rock Paper Shotgun] interviews the development team.&lt;br /&gt;
* [http://github.com/blog/1228-game-bytes-2/ Github Game Bytes] blog entry featuring Pioneer.&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Development_Model&amp;diff=35</id>
		<title>Development Model</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Development_Model&amp;diff=35"/>
		<updated>2012-09-07T07:26:43Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: tweak release table look&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pioneer's primary repository is hosted at https://github.com/pioneerspacesim/pioneer. To do any hacking you need your own clone of the repository. We recommend that you host your own repository on Github by forking the primary repository as we make heavy use of Github's features, but in the finest git tradition you're welcome to manage your copy of the code as you please.&lt;br /&gt;
&lt;br /&gt;
=Getting your changes into Pioneer=&lt;br /&gt;
&lt;br /&gt;
==Create feature branch==&lt;br /&gt;
Get your master copy up to date with the central repository, and create a branch for whatever it is that you're working on.&lt;br /&gt;
&lt;br /&gt;
==Implement feature==&lt;br /&gt;
Hack hack hack! This is the fun bit! Its recommended you stay in close contact with the other developers, either via IRC or the mailing list, to make sure that your work fits with the rest of the project.&lt;br /&gt;
&lt;br /&gt;
==Request merge==&lt;br /&gt;
Once your code is ready you need to request that it be merged. If you're using Github, the standard mechanism is a pull request. This creates an issue in the issue tracker so your request doesn't get lost. If you're not using Github you should manually create an issue, point to a place where your repository can be accessed and the SHA1 of the branch head you want merged. We prefer the SHA1 over the symbolic ref so we can be sure that we're reviewing the same code.&lt;br /&gt;
&lt;br /&gt;
==Review==&lt;br /&gt;
Once you've requested a merge someone will review your code. This is the most important part of the process. We insist on a review for two reasons:&lt;br /&gt;
&lt;br /&gt;
* Ensuring that the codebase remains consistent and there are no glaringly obvious bugs or structural defects in your code&lt;br /&gt;
* Giving the reviewer an opportunity to learn your code and the parts of the codebase you changed&lt;br /&gt;
For small changes the review will often be a quick nod from someone in IRC, possibly even the merge manager doing the review at the same time as the merge. Larger changes will require a more thorough review, possibly by more than one person (if an expert in a particular area is required).&lt;br /&gt;
&lt;br /&gt;
When the review is completed the reviewer should make a note on the relevant issue to indicate the branch is ready for merge.&lt;br /&gt;
&lt;br /&gt;
If the change does not pass review then the reviewer should note the problems in the issue. You should go back and fix the things that the reviewer flagged as problems and then update the issue/pull request with the new SHA1. The original reviewer should take the lead on follow-up reviews to make sure that all the original problems are addressed.&lt;br /&gt;
&lt;br /&gt;
==Merge==&lt;br /&gt;
&lt;br /&gt;
Once the review is complete the merge manager will complete the merge and push an updated master. Congratulations, your code is now a part of Pioneer!&lt;br /&gt;
&lt;br /&gt;
=Release process=&lt;br /&gt;
From alpha 11 onwards Pioneer works on a timeboxed release schedule. Releases occur on the second Friday of each month. A release branch is created one week before this release. No new development is accepted onto this branch - only critical bugfixes and documentation updates.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Projected release dates&lt;br /&gt;
|-&lt;br /&gt;
!Release&lt;br /&gt;
!Freeze date&lt;br /&gt;
!Release date&lt;br /&gt;
|-&lt;br /&gt;
|Alpha 14&lt;br /&gt;
|2 September 2011&lt;br /&gt;
|9 September 2011&lt;br /&gt;
|-&lt;br /&gt;
|Alpha 15&lt;br /&gt;
|7 October 2011&lt;br /&gt;
|14 October 2011&lt;br /&gt;
|-&lt;br /&gt;
|Alpha 16&lt;br /&gt;
|4 November 2011&lt;br /&gt;
|11 November 2011&lt;br /&gt;
|-&lt;br /&gt;
|Alpha 17&lt;br /&gt;
|2 December 2011&lt;br /&gt;
|9 December 2011&lt;br /&gt;
|-&lt;br /&gt;
|Alpha 18&lt;br /&gt;
|6 January 2012&lt;br /&gt;
|13 January 2012&lt;br /&gt;
|-&lt;br /&gt;
|...&lt;br /&gt;
|...&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
|Alpha26&lt;br /&gt;
|7 September 2012&lt;br /&gt;
|14 September 2012&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''need to update this table'' [[User:Philbywhizz|Philbywhizz]] 17:33, 6 September 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
==Freeze==&lt;br /&gt;
On the freeze date the release manager will create a new branch for the release. Development can continue according to the normal development process and code will be merged to master as normal. No new features will be included on the release branch except for critical bugfixes (as determined by the development team).&lt;br /&gt;
&lt;br /&gt;
The main purpose of the release branch is to give us time to test, update docs and prepare for release.&lt;br /&gt;
&lt;br /&gt;
==Release==&lt;br /&gt;
Things that need to be done for release:&lt;br /&gt;
&lt;br /&gt;
* Ensure the Changelog, AUTHORS, README and other docs are up to date.&lt;br /&gt;
* Do the builds&lt;br /&gt;
* Test the builds. This includes making sure they run and making sure all the necessary files are included.&lt;br /&gt;
* Upload&lt;br /&gt;
* Update the download page with links, MD5 sums and the change log&lt;br /&gt;
* Post announcements to:&lt;br /&gt;
** pioneerspacesim.net news page&lt;br /&gt;
** spacesimcentral.com forum&lt;br /&gt;
** moddb.com page&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Media_Coverage&amp;diff=27</id>
		<title>Media Coverage</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Media_Coverage&amp;diff=27"/>
		<updated>2012-09-07T04:09:55Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: Created page with &amp;quot;The following are sites where pioneer has been featured/promoted.  * [http://www.rockpapershotgun.com/2011/12/06/back-to-frontier-pioneer/ Back To Front(ier): Pioneer] * [https:/...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following are sites where pioneer has been featured/promoted.&lt;br /&gt;
&lt;br /&gt;
* [http://www.rockpapershotgun.com/2011/12/06/back-to-frontier-pioneer/ Back To Front(ier): Pioneer]&lt;br /&gt;
* [https://github.com/blog/1228-game-bytes-2 Github Game Bytes #2]&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=26</id>
		<title>Pioneer Wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=26"/>
		<updated>2012-09-07T04:05:34Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pioneer is a space adventure game set in the milkyway galaxy at the turn of the 31st century.&lt;br /&gt;
&lt;br /&gt;
The game is open-ended, and you are free to explore the millions of star systems in the game. You can land on planets, slingshot past gas giants, and burn yourself to a crisp flying between binary star systems.&lt;br /&gt;
&lt;br /&gt;
When Pioneer is finished there will be many ways to make ends meet: piracy, smuggling, bounty-hunting, mining, doing missions for the various factions fighting for power, freedom or self-determination&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Please make this wiki nice. Copy the content over from the [https://github.com/pioneerspacesim/pioneer/wiki GitHub wiki], add stuff about mods, dev, whatever. Be awesome! [[Getting started|How to get started]].&lt;br /&gt;
&lt;br /&gt;
And write a nice front page and get rid of this, ok? :)&lt;br /&gt;
&lt;br /&gt;
Pioneer is brung to you by a flock of [https://github.com/pioneerspacesim/pioneer/blob/master/AUTHORS.txt opensource beardy-weirdies], and is [http://www.gnu.org/licenses/gpl.html Free Software]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Site Map==&lt;br /&gt;
&lt;br /&gt;
===General===&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [[Mods]]&lt;br /&gt;
* [[In the media]]&lt;br /&gt;
&lt;br /&gt;
===Development===&lt;br /&gt;
* [[Our Development Model]]&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=25</id>
		<title>Pioneer Wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=25"/>
		<updated>2012-09-07T04:02:42Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pioneer is a space adventure game set in the milkyway galaxy at the turn of the 31st century.&lt;br /&gt;
&lt;br /&gt;
The game is open-ended, and you are free to explore the millions of star systems in the game. You can land on planets, slingshot past gas giants, and burn yourself to a crisp flying between binary star systems.&lt;br /&gt;
&lt;br /&gt;
When Pioneer is finished there will be many ways to make ends meet: piracy, smuggling, bounty-hunting, mining, doing missions for the various factions fighting for power, freedom or self-determination&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Please make this wiki nice. Copy the content over from the [https://github.com/pioneerspacesim/pioneer/wiki GitHub wiki], add stuff about mods, dev, whatever. Be awesome! [[Getting started|How to get started]].&lt;br /&gt;
&lt;br /&gt;
And write a nice front page and get rid of this, ok? :)&lt;br /&gt;
&lt;br /&gt;
Pioneer is brung to you by a flock of [https://github.com/pioneerspacesim/pioneer/blob/master/AUTHORS.txt opensource beardy-weirdies], and is [http://www.gnu.org/licenses/gpl.html Free Software]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Site Map==&lt;br /&gt;
&lt;br /&gt;
===General===&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [[Mods]]&lt;br /&gt;
===Development===&lt;br /&gt;
* [[Our Development Model]]&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=User:Philbywhizz&amp;diff=24</id>
		<title>User:Philbywhizz</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=User:Philbywhizz&amp;diff=24"/>
		<updated>2012-09-07T01:10:50Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Role=&lt;br /&gt;
* OSX port maintainer&lt;br /&gt;
* Bug squasher&lt;br /&gt;
* General developer and scripter&lt;br /&gt;
* Dabble in 3d modeling&lt;br /&gt;
&lt;br /&gt;
=Bio=&lt;br /&gt;
I've been in the IT industry for nearly 20 years. Have played with may different technologies and programming languages. (I can remember playing Elite on an old Commodore64 loaded from tape).&lt;br /&gt;
&lt;br /&gt;
These days I've settled down on OSX for home as my main platform. While I'm not a apple fanboy, I do appreciate nice products that just work so I can focus on what I love doing. I like to think that by helping to port pioneer to OSX I'm bring some of the ''old school'' fun I used to have to a new generation of people.&lt;br /&gt;
&lt;br /&gt;
-[[User:Philbywhizz|Philbywhizz]] http://www.philbywhizz.com&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=User:Philbywhizz&amp;diff=23</id>
		<title>User:Philbywhizz</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=User:Philbywhizz&amp;diff=23"/>
		<updated>2012-09-07T00:56:47Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: Created page with &amp;quot;=Role= * OSX port maintainer * Bug squasher * General developer and scripter * Dabble in 3d modeling  =Bio= I've been in the IT industry for nearly 20 years. Have played with may...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Role=&lt;br /&gt;
* OSX port maintainer&lt;br /&gt;
* Bug squasher&lt;br /&gt;
* General developer and scripter&lt;br /&gt;
* Dabble in 3d modeling&lt;br /&gt;
&lt;br /&gt;
=Bio=&lt;br /&gt;
I've been in the IT industry for nearly 20 years. Have played with may different technologies and programming languages. (I can remember playing Elite on an old Commodore64 loaded from tape).&lt;br /&gt;
&lt;br /&gt;
These days I've settled down on OSX for home as my main platform. While I'm not a apple fanboy, I do appreciate nice products that just work so I can focus on what I love doing. I like to think that by helping to port pioneer to OSX I'm bring some of the 'old school' fun I used to have to a new generation of people.&lt;br /&gt;
&lt;br /&gt;
-[[User:Philbywhizz|Philbywhizz]] http://www.philbywhizz.com&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Development_Model&amp;diff=22</id>
		<title>Development Model</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Development_Model&amp;diff=22"/>
		<updated>2012-09-07T00:33:01Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: Import of development model&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pioneer's primary repository is hosted at https://github.com/pioneerspacesim/pioneer. To do any hacking you need your own clone of the repository. We recommend that you host your own repository on Github by forking the primary repository as we make heavy use of Github's features, but in the finest git tradition you're welcome to manage your copy of the code as you please.&lt;br /&gt;
&lt;br /&gt;
=Getting your changes into Pioneer=&lt;br /&gt;
&lt;br /&gt;
==Create feature branch==&lt;br /&gt;
Get your master copy up to date with the central repository, and create a branch for whatever it is that you're working on.&lt;br /&gt;
&lt;br /&gt;
==Implement feature==&lt;br /&gt;
Hack hack hack! This is the fun bit! Its recommended you stay in close contact with the other developers, either via IRC or the mailing list, to make sure that your work fits with the rest of the project.&lt;br /&gt;
&lt;br /&gt;
==Request merge==&lt;br /&gt;
Once your code is ready you need to request that it be merged. If you're using Github, the standard mechanism is a pull request. This creates an issue in the issue tracker so your request doesn't get lost. If you're not using Github you should manually create an issue, point to a place where your repository can be accessed and the SHA1 of the branch head you want merged. We prefer the SHA1 over the symbolic ref so we can be sure that we're reviewing the same code.&lt;br /&gt;
&lt;br /&gt;
==Review==&lt;br /&gt;
Once you've requested a merge someone will review your code. This is the most important part of the process. We insist on a review for two reasons:&lt;br /&gt;
&lt;br /&gt;
* Ensuring that the codebase remains consistent and there are no glaringly obvious bugs or structural defects in your code&lt;br /&gt;
* Giving the reviewer an opportunity to learn your code and the parts of the codebase you changed&lt;br /&gt;
For small changes the review will often be a quick nod from someone in IRC, possibly even the merge manager doing the review at the same time as the merge. Larger changes will require a more thorough review, possibly by more than one person (if an expert in a particular area is required).&lt;br /&gt;
&lt;br /&gt;
When the review is completed the reviewer should make a note on the relevant issue to indicate the branch is ready for merge.&lt;br /&gt;
&lt;br /&gt;
If the change does not pass review then the reviewer should note the problems in the issue. You should go back and fix the things that the reviewer flagged as problems and then update the issue/pull request with the new SHA1. The original reviewer should take the lead on follow-up reviews to make sure that all the original problems are addressed.&lt;br /&gt;
&lt;br /&gt;
==Merge==&lt;br /&gt;
&lt;br /&gt;
Once the review is complete the merge manager will complete the merge and push an updated master. Congratulations, your code is now a part of Pioneer!&lt;br /&gt;
&lt;br /&gt;
=Release process=&lt;br /&gt;
From alpha 11 onwards Pioneer works on a timeboxed release schedule. Releases occur on the second Friday of each month. A release branch is created one week before this release. No new development is accepted onto this branch - only critical bugfixes and documentation updates.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Projected release dates&lt;br /&gt;
|-&lt;br /&gt;
!Release&lt;br /&gt;
!Freeze date&lt;br /&gt;
!Release date&lt;br /&gt;
|-&lt;br /&gt;
|Alpha 14&lt;br /&gt;
|2 September&lt;br /&gt;
|9 September&lt;br /&gt;
|-&lt;br /&gt;
|Alpha 15&lt;br /&gt;
|7 October&lt;br /&gt;
|14 October&lt;br /&gt;
|-&lt;br /&gt;
|Alpha 16&lt;br /&gt;
|4 November&lt;br /&gt;
|11 November&lt;br /&gt;
|-&lt;br /&gt;
|Alpha 17&lt;br /&gt;
|2 December&lt;br /&gt;
|9 December&lt;br /&gt;
|-&lt;br /&gt;
|Alpha 18&lt;br /&gt;
|6 January&lt;br /&gt;
|13 January&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''need to update this table'' [[User:Philbywhizz|Philbywhizz]] 17:33, 6 September 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
==Freeze==&lt;br /&gt;
On the freeze date the release manager will create a new branch for the release. Development can continue according to the normal development process and code will be merged to master as normal. No new features will be included on the release branch except for critical bugfixes (as determined by the development team).&lt;br /&gt;
&lt;br /&gt;
The main purpose of the release branch is to give us time to test, update docs and prepare for release.&lt;br /&gt;
&lt;br /&gt;
==Release==&lt;br /&gt;
Things that need to be done for release:&lt;br /&gt;
&lt;br /&gt;
* Ensure the Changelog, AUTHORS, README and other docs are up to date.&lt;br /&gt;
* Do the builds&lt;br /&gt;
* Test the builds. This includes making sure they run and making sure all the necessary files are included.&lt;br /&gt;
* Upload&lt;br /&gt;
* Update the download page with links, MD5 sums and the change log&lt;br /&gt;
* Post announcements to:&lt;br /&gt;
** pioneerspacesim.net news page&lt;br /&gt;
** spacesimcentral.com forum&lt;br /&gt;
** moddb.com page&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=21</id>
		<title>Pioneer Wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=21"/>
		<updated>2012-09-07T00:21:14Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pioneer is some kind of game thing.&lt;br /&gt;
&lt;br /&gt;
Please make this wiki nice. Copy the content over from the [https://github.com/pioneerspacesim/pioneer/wiki GitHub wiki], add stuff about mods, dev, whatever. Be awesome! [[Getting started|How to get started]].&lt;br /&gt;
&lt;br /&gt;
And write a nice front page and get rid of this, ok? :)&lt;br /&gt;
&lt;br /&gt;
Pioneer is brung to you by a flock of [https://github.com/pioneerspacesim/pioneer/blob/master/AUTHORS.txt opensource beardy-weirdies], and is [http://www.gnu.org/licenses/gpl.html Free Software]&lt;br /&gt;
&lt;br /&gt;
== Pages under construction ==&lt;br /&gt;
&lt;br /&gt;
Please make a proper index or contents for these.&lt;br /&gt;
&lt;br /&gt;
===General===&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [[Mods]]&lt;br /&gt;
===Development===&lt;br /&gt;
* [[Our Development Model]]&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=FAQ&amp;diff=20</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=FAQ&amp;diff=20"/>
		<updated>2012-09-07T00:14:19Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: Initial import of FAQ from the github wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Frequently Asked Questions=&lt;br /&gt;
==What is Pioneer?==&lt;br /&gt;
Pioneer is a freeform single player space adventure in the spirit of [https://en.wikipedia.org/wiki/Frontier:_Elite_II Frontier: Elite II].&lt;br /&gt;
&lt;br /&gt;
==Is this a game or a simulation?==&lt;br /&gt;
Frontier was a game, but with a newtonian flight model and a slightly more scientific flavour to the universe than usually in space games. Pioneer will follow this same path.&lt;br /&gt;
&lt;br /&gt;
==Can I play online?==&lt;br /&gt;
There will be no multiplayer. This does not rule out the possibility of minor network features, but multiplayer as it is commonly known is not compatible with the core mechanics of Pioneer.&lt;br /&gt;
&lt;br /&gt;
==Can I colonize planets, build space stations or conquer the universe?==&lt;br /&gt;
No, these are out of the game scope. While the game universe might not stay static for the duration of a game, the player can not generally influence major events.&lt;br /&gt;
&lt;br /&gt;
==Can I walk around space stations and planets?==&lt;br /&gt;
No, you cannot exit your ship. The ship is always your avatar.&lt;br /&gt;
&lt;br /&gt;
==Is the universe pre-defined or randomly generated?==&lt;br /&gt;
There are millions of stars in the galaxy. A few hundred on them are based on real-world astronomic catalogues. some of the planets (obvious ones being in the Sol system) are pre-defined, but most things are procedurally generated. This means that a planet does not exist until you actually visit it, but it will be generated the same way for every player.&lt;br /&gt;
&lt;br /&gt;
==Can I hire crew for my ship?==&lt;br /&gt;
Frontier had this, so it should be possible in Pioneer one day.&lt;br /&gt;
&lt;br /&gt;
==Are savegames compatible between releases?==&lt;br /&gt;
While the game is still in alpha, this cannot be guaranteed. The situation will stabilize in a few years.&lt;br /&gt;
&lt;br /&gt;
==Where is star system X from Frontier? Can I buy ship Y?==&lt;br /&gt;
Pioneer is not an exact clone of Frontier. You will have to figure out new trade routes!&lt;br /&gt;
&lt;br /&gt;
==How do I take screenshots?==&lt;br /&gt;
Ctrl+Printscreen saves .png files in the same directory where the game .ini and savegames are.&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=19</id>
		<title>Pioneer Wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Pioneer_Wiki&amp;diff=19"/>
		<updated>2012-09-07T00:08:59Z</updated>

		<summary type="html">&lt;p&gt;Philbywhizz: Add in FAQ link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pioneer is some kind of game thing.&lt;br /&gt;
&lt;br /&gt;
Please make this wiki nice. Copy the content over from the [https://github.com/pioneerspacesim/pioneer/wiki GitHub wiki], add stuff about mods, dev, whatever. Be awesome! [[Getting started|How to get started]].&lt;br /&gt;
&lt;br /&gt;
And write a nice front page and get rid of this, ok? :)&lt;br /&gt;
&lt;br /&gt;
Pioneer is brung to you by a flock of [https://github.com/pioneerspacesim/pioneer/blob/master/AUTHORS.txt opensource beardy-weirdies], and is [http://www.gnu.org/licenses/gpl.html Free Software]&lt;br /&gt;
&lt;br /&gt;
== Pages under construction ==&lt;br /&gt;
&lt;br /&gt;
Please make a proper index or contents for these.&lt;br /&gt;
&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [[Mods]]&lt;/div&gt;</summary>
		<author><name>Philbywhizz</name></author>
		
	</entry>
</feed>