<?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=Impaktor</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=Impaktor"/>
	<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/wiki/Special:Contributions/Impaktor"/>
	<updated>2026-04-17T04:25:49Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Translations&amp;diff=4758</id>
		<title>Translations</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Translations&amp;diff=4758"/>
		<updated>2025-11-21T13:51:39Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All text in Pioneer is translatable, and the game ships with several translations. Here's everything you need to know.&lt;br /&gt;
&lt;br /&gt;
== For translators ==&lt;br /&gt;
&lt;br /&gt;
All our translations are managed through [http://transifex.com Transifex], a free web-based translation service. To start writing translations, sign up there, using [https://app.transifex.com/signup/open-source/ this link], and then take a look at the [https://app.transifex.com/pioneer/pioneer/dashboard/ Pioneer project]. You can either use the web-interface, or download the full file, and edit off line, and then re-upload.&lt;br /&gt;
&lt;br /&gt;
Changes to translations are automatically pulled into the master git repo, from Transifex, twice per day, and from there to the builds when they're next run.&lt;br /&gt;
&lt;br /&gt;
In Transifex you can subscribe to notifications for the languages or resources you're interested in. When new strings are added or modified, you'll be notified.&lt;br /&gt;
&lt;br /&gt;
If you want to translate Pioneer to an entirely new language, please [https://github.com/pioneerspacesim/pioneer/issues open an issue] on the tracker and someone will create the translation for you.&lt;br /&gt;
&lt;br /&gt;
English is the canonical language for Pioneer. As such, you can't directly modify the english strings through Transifex. If you want to change those, you'll need to make the change in the source code hosted on GitHub and submit a pull request like for a normal code change. However, do note that changes to the english text will trigger re-translation of that string in all other languages, thus there should be a good motivation why a string is changed (e.g. spelling/grammar).&lt;br /&gt;
&lt;br /&gt;
Untranslated strings will use the value from the English version.&lt;br /&gt;
&lt;br /&gt;
You can leave comments in Transifex to help out other translators. You'll also see any notes left by the developers to help you translate a particular string.&lt;br /&gt;
&lt;br /&gt;
If you're a new translator and you'd like your name included in AUTHORS.txt, please let us know!&lt;br /&gt;
&lt;br /&gt;
For when you translate: Text within curly brace denote a variable name that will be substituted and should not be translated, e.g. &lt;br /&gt;
&lt;br /&gt;
    &amp;quot;Welcome to {system}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== For mod developers ==&lt;br /&gt;
&lt;br /&gt;
Each module gets its own translation resource, called &amp;lt;tt&amp;gt;module-foo&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To get at the strings for your module, do something like:&lt;br /&gt;
&lt;br /&gt;
    local Lang = import(&amp;quot;Lang&amp;quot;)&lt;br /&gt;
    local l = Lang.GetResource(&amp;quot;module-foo&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Then you can get at the string by its token:&lt;br /&gt;
&lt;br /&gt;
    print(l.SOME_TRANSLATED_STRING)&lt;br /&gt;
&lt;br /&gt;
While its possible to load multiple translation resources to share strings, its highly recommended that you don't do that. Stick to your own strings so that you don't have to track changes in other modules. Duplicates across resources are fine. Note that code that uses multiple resources won't be accepted into the main Pioneer repository unless you've checked it with a core developer first and it has a good reason.&lt;br /&gt;
&lt;br /&gt;
Translations are [https://developer.chrome.com/extensions/i18n.html &amp;lt;tt&amp;gt;chrome.i18n&amp;lt;/tt&amp;gt; JSON] files. The format is fairly simple - a JSON object with tokens as keys and values of an object with two keys, &amp;lt;tt&amp;gt;message&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;description&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;message&amp;lt;/tt&amp;gt; is the text that will appear in the game, while &amp;lt;tt&amp;gt;description&amp;lt;/tt&amp;gt; provides instructions for the translator that will be displayed in Transifex. [https://www.json.org/img/string.png Here] is a useful chart showing how characters are interpreted.&lt;br /&gt;
&lt;br /&gt;
If you're submitting code that requires a new language you should only include &amp;lt;tt&amp;gt;en.json&amp;lt;/tt&amp;gt;. Please tag '''@impaktor''' in your pull request so they can create a new resource in Transifex and make sure a language update is done at merge. If you don't do this then you'll break the game for non-English users.&lt;br /&gt;
&lt;br /&gt;
== For core developers ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;core&amp;lt;/tt&amp;gt; resource is magical. If you add a string to it, you also need to add it to &amp;lt;tt&amp;gt;LangStrings.inc.h&amp;lt;/tt&amp;gt; and recompile. It will then be available as &amp;lt;tt&amp;gt;Lang::SOME_TRANSLATED_STRING&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== For admin ==&lt;br /&gt;
&lt;br /&gt;
Notes to self when adding new module to translate&lt;br /&gt;
* Add module to .tx/config&lt;br /&gt;
* Manually in transifex&lt;br /&gt;
** Upload en.json &amp;amp; rename module to be consistent with existing ones.&lt;br /&gt;
** Go to &amp;quot;resources&amp;quot; -&amp;gt; &amp;quot;auto-update resources&amp;quot;, add link with github raw json file&lt;br /&gt;
* (If we can't wait until pioneer server box's cron job, ssh to it and run script manually&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Bouncer&amp;diff=4659</id>
		<title>Bouncer</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Bouncer&amp;diff=4659"/>
		<updated>2024-11-07T13:31:50Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: bouncer now has https&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is a Bouncer? ==&lt;br /&gt;
&lt;br /&gt;
The [https://wiki.znc.in/ZNC IRC Bouncer] will create an alternative IRC server, that will keep your nick perpetually logged in to a set of channels (like #pioneer) and IRC networks (like Libera.chat), as determined by a configuration done in the [http://191.101.80.52:1025 web-interface] of the bouncer service.&lt;br /&gt;
&lt;br /&gt;
The user will then log into the bouncer's IRC network, rather than directly to e.g. Libera.chat. The user will then get a playback of all the history in all the channels since their last visit.&lt;br /&gt;
&lt;br /&gt;
Important: When shutting down your computer/IRC client, do not manually leave the channel, instead, simply close your IRC-client, or disconnect from the IRC bouncer's network. That will keep your nick logged in,and start saving history until next time you connect.&lt;br /&gt;
&lt;br /&gt;
== How to set it up ==&lt;br /&gt;
&lt;br /&gt;
When you're given an account on [https://bouncer.pioneerspacesim.net/ the bouncer], you will be given a username and password, let's call them &amp;quot;znc-user&amp;quot; and &amp;quot;znc-password&amp;quot;. We have configured it for you to be logged into #pioneer, with your usual nick. You can verify, and configure it by [https://bouncer.pioneerspacesim.net/ logging in to it], using the new credentials. At a minimum you should change the znc-password you were given.&lt;br /&gt;
&lt;br /&gt;
== How to connect ==&lt;br /&gt;
&lt;br /&gt;
Instead of connecting to libera.chat on port 6667, you will have to connect to the bouncer instead: 191.101.80.52, on port 1025. Instead of logging in with your nickserv nickname, you use the given one:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;znc-user&amp;gt;/network:&amp;lt;znc-password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(&amp;quot;network&amp;quot; here is the name set in the bouncer configuration, e.g. &amp;quot;Libera&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Log in from multiple devices ===&lt;br /&gt;
&lt;br /&gt;
The pioneer znc server supports the [https://wiki.znc.in/Clientbuffer clientbuffer] (and [https://github.com/jpnurmi/znc-playback playback]) modules for using the service from multiple devices, such that the user can have separate playback buffers for each device. You can set it up (add/remove/list devices) by sending the following messages in IRC (when logged in through the bouncer, as described in previous paragraph):&lt;br /&gt;
&lt;br /&gt;
    /msg *clientbuffer AddClient &amp;lt;device-name&amp;gt;&lt;br /&gt;
    /msg *clientbuffer DelClient &amp;lt;device-name&amp;gt;&lt;br /&gt;
    /msg *clientbuffer ListClients&lt;br /&gt;
&lt;br /&gt;
And then you log in to IRC by using&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;znc-user&amp;gt;@&amp;lt;device-name&amp;gt;/network:&amp;lt;znc-password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
For this example, your regular IRC nick in #pioneer is &amp;quot;Anakin&amp;quot;. It is registered with NickServ, to belong only to you. You usually login to IRC, by using these. For example, in Emacs IRC client:&lt;br /&gt;
&lt;br /&gt;
    (erc :server &amp;quot;irc.libera.chat&amp;quot; :port 6667 :nick &amp;quot;Anakin&amp;quot; :password &amp;quot;theforce&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
For using the bouncer, you now use the znc-user and znc-password, and a different server &amp;amp; port, such that the relative changes are (again for Emacs IRC Client, for your specific IRC client make the suitable changes):&lt;br /&gt;
&lt;br /&gt;
    (erc :server &amp;quot;191.101.80.52&amp;quot; :port 1025 :nick &amp;quot;Anakin&amp;quot; :password &amp;quot;skywalker/Libera:Joshua&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Then (optional? / possibly first time only?) authenticate your usual nick name registered with nickserv, by sending the following message:&lt;br /&gt;
&lt;br /&gt;
    /msg NickServ IDENTIFY Anakin theforce&lt;br /&gt;
&lt;br /&gt;
You can also send message to the bouncer, to register your computer and phone as a two separate devices:&lt;br /&gt;
&lt;br /&gt;
    /msg *clientbuffer AddClient computer&lt;br /&gt;
    /msg *clientbuffer AddClient phone&lt;br /&gt;
    /msg *clientbuffer ListClients&lt;br /&gt;
&lt;br /&gt;
You will then always use (from your computer):&lt;br /&gt;
&lt;br /&gt;
    (erc :server &amp;quot;191.101.80.52&amp;quot; :port 1025 :nick &amp;quot;Anakin&amp;quot; :password &amp;quot;skywalker@computer/Libera:Joshua&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
to login to the bouncer using your IRC client. It will then playback the channel history since you last logged in using your &amp;quot;computer&amp;quot; device.&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Bouncer&amp;diff=4658</id>
		<title>Bouncer</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Bouncer&amp;diff=4658"/>
		<updated>2024-11-07T13:31:21Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: /* How to set it up */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is a Bouncer? ==&lt;br /&gt;
&lt;br /&gt;
The [https://wiki.znc.in/ZNC IRC Bouncer] will create an alternative IRC server, that will keep your nick perpetually logged in to a set of channels (like #pioneer) and IRC networks (like Libera.chat), as determined by a configuration done in the [http://191.101.80.52:1025 web-interface] of the bouncer service.&lt;br /&gt;
&lt;br /&gt;
The user will then log into the bouncer's IRC network, rather than directly to e.g. Libera.chat. The user will then get a playback of all the history in all the channels since their last visit.&lt;br /&gt;
&lt;br /&gt;
Important: When shutting down your computer/IRC client, do not manually leave the channel, instead, simply close your IRC-client, or disconnect from the IRC bouncer's network. That will keep your nick logged in,and start saving history until next time you connect.&lt;br /&gt;
&lt;br /&gt;
== How to set it up ==&lt;br /&gt;
&lt;br /&gt;
When you're given an account on [https://bouncer.pioneerspacesim.net/ the bouncer], you will be given a username and password, let's call them &amp;quot;znc-user&amp;quot; and &amp;quot;znc-password&amp;quot;. We have configured it for you to be logged into #pioneer, with your usual nick. You can verify, and configure it by [http://191.101.80.52:1025/ logging in to it], using the new credentials. At a minimum you should change the znc-password you were given.&lt;br /&gt;
&lt;br /&gt;
== How to connect ==&lt;br /&gt;
&lt;br /&gt;
Instead of connecting to libera.chat on port 6667, you will have to connect to the bouncer instead: 191.101.80.52, on port 1025. Instead of logging in with your nickserv nickname, you use the given one:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;znc-user&amp;gt;/network:&amp;lt;znc-password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(&amp;quot;network&amp;quot; here is the name set in the bouncer configuration, e.g. &amp;quot;Libera&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Log in from multiple devices ===&lt;br /&gt;
&lt;br /&gt;
The pioneer znc server supports the [https://wiki.znc.in/Clientbuffer clientbuffer] (and [https://github.com/jpnurmi/znc-playback playback]) modules for using the service from multiple devices, such that the user can have separate playback buffers for each device. You can set it up (add/remove/list devices) by sending the following messages in IRC (when logged in through the bouncer, as described in previous paragraph):&lt;br /&gt;
&lt;br /&gt;
    /msg *clientbuffer AddClient &amp;lt;device-name&amp;gt;&lt;br /&gt;
    /msg *clientbuffer DelClient &amp;lt;device-name&amp;gt;&lt;br /&gt;
    /msg *clientbuffer ListClients&lt;br /&gt;
&lt;br /&gt;
And then you log in to IRC by using&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;znc-user&amp;gt;@&amp;lt;device-name&amp;gt;/network:&amp;lt;znc-password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
For this example, your regular IRC nick in #pioneer is &amp;quot;Anakin&amp;quot;. It is registered with NickServ, to belong only to you. You usually login to IRC, by using these. For example, in Emacs IRC client:&lt;br /&gt;
&lt;br /&gt;
    (erc :server &amp;quot;irc.libera.chat&amp;quot; :port 6667 :nick &amp;quot;Anakin&amp;quot; :password &amp;quot;theforce&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
For using the bouncer, you now use the znc-user and znc-password, and a different server &amp;amp; port, such that the relative changes are (again for Emacs IRC Client, for your specific IRC client make the suitable changes):&lt;br /&gt;
&lt;br /&gt;
    (erc :server &amp;quot;191.101.80.52&amp;quot; :port 1025 :nick &amp;quot;Anakin&amp;quot; :password &amp;quot;skywalker/Libera:Joshua&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Then (optional? / possibly first time only?) authenticate your usual nick name registered with nickserv, by sending the following message:&lt;br /&gt;
&lt;br /&gt;
    /msg NickServ IDENTIFY Anakin theforce&lt;br /&gt;
&lt;br /&gt;
You can also send message to the bouncer, to register your computer and phone as a two separate devices:&lt;br /&gt;
&lt;br /&gt;
    /msg *clientbuffer AddClient computer&lt;br /&gt;
    /msg *clientbuffer AddClient phone&lt;br /&gt;
    /msg *clientbuffer ListClients&lt;br /&gt;
&lt;br /&gt;
You will then always use (from your computer):&lt;br /&gt;
&lt;br /&gt;
    (erc :server &amp;quot;191.101.80.52&amp;quot; :port 1025 :nick &amp;quot;Anakin&amp;quot; :password &amp;quot;skywalker@computer/Libera:Joshua&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
to login to the bouncer using your IRC client. It will then playback the channel history since you last logged in using your &amp;quot;computer&amp;quot; device.&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=FAQ&amp;diff=4657</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=FAQ&amp;diff=4657"/>
		<updated>2024-10-30T16:24:37Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: Update with new XDG. Todo: write this better&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Frequently Asked Questions =&lt;br /&gt;
&lt;br /&gt;
== About the Game ==&lt;br /&gt;
&lt;br /&gt;
=== What is Pioneer? ===&lt;br /&gt;
&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;
&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 follows this same path.&lt;br /&gt;
&lt;br /&gt;
=== Can I play multiplayer online? ===&lt;br /&gt;
&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. See for instance [[Network_features|Network features]], and [[ServerAgent|ServerAgent]] for more, or our dev forum [https://forum.pioneerspacesim.net/viewtopic.php?f=3&amp;amp;t=216 here]. Pioneer will never have multiple players in different ships, as this is incompatible with time acceleration feature. For comparison: the Elite Dangerous dev-team chose to prioritize multiplayer over Newtonian mechanics, and make it more like the original Elite, we choose to stay true to the core concepts of Frontier Elite II, which is Newtonian mechanics, with time acceleration.&lt;br /&gt;
&lt;br /&gt;
=== Can I colonize planets, build space stations or conquer the universe? ===&lt;br /&gt;
&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;
&lt;br /&gt;
No, you cannot exit your ship. The ship is always your avatar. The development team does have [https://forum.pioneerspacesim.net/viewtopic.php?f=3&amp;amp;t=454 aspirations] to push in this direction, for future versions.&lt;br /&gt;
&lt;br /&gt;
=== Is the universe pre-defined or randomly generated? ===&lt;br /&gt;
&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;
&lt;br /&gt;
Yes. You can hire crew. But they don't do very much at the moment.&lt;br /&gt;
&lt;br /&gt;
=== Are savegames compatible between releases? ===&lt;br /&gt;
&lt;br /&gt;
The development of the game can happen in sudden bursts, some of which change the game universe, or save/load routine, such that old saves are blocked from loading, lest the game might crash. The player can start a new game, and &amp;quot;give&amp;quot; themselves back money, kills, reputation, ship, as it was in the old save, by using the [[Lua_Console|lua console]]. You probably want to keep a copy of your old Pioneer, to read off your player statistics, write them down, then download and open the latest Pioneer version, and give yourself those stats. Note: it's only cheating if you give yourself back more than you had, remember: God is watching over your shoulder!&lt;br /&gt;
&lt;br /&gt;
=== Are savegames compatible between Mods? ===&lt;br /&gt;
&lt;br /&gt;
Again as with savegames between different versions of pioneer, compatibility between mods can not be guaranteed. It all depends on what mods you have installed.&lt;br /&gt;
&lt;br /&gt;
=== Where is star system X from Frontier? Can I buy ship Y? ===&lt;br /&gt;
&lt;br /&gt;
Although Pioneer started out as a clone of Frontier, it no longer is, thus references to the Frontier universe have been removed, and we aim at making Pioneer far better than Frontier. Thus, you will have to figure out new trade routes! But don't worry, Newtonian physics will remain, as well as single player.&lt;br /&gt;
&lt;br /&gt;
=== Can I build and control a fleet, or a factory, or run/own a station? ===&lt;br /&gt;
&lt;br /&gt;
No, this is not on the agenda, and none of the developers are motivated to push for this, but who knows, perhaps in the future, some skilled developer, who knows how to implement this in a way that makes game play interesting, joins the dev-team. However, we are currently planning to have mining machines (like in Frontier Elite II), and ship system management (heat, energy, repair components, etc.) on the agenda.&lt;br /&gt;
&lt;br /&gt;
== Gameplay ==&lt;br /&gt;
&lt;br /&gt;
=== How do I take screenshots? ===&lt;br /&gt;
&lt;br /&gt;
Ctrl+Printscreen saves .png files in the same directory where the game .ini and savegames are. You can cycle through full HUD/HUD without labels and cursor/No HUD and cockpit using TAB as described in [http://pioneerwiki.com/wiki/Keyboard_and_mouse_controls#In_flight [1]].&lt;br /&gt;
&lt;br /&gt;
=== How do I record a video? ===&lt;br /&gt;
To record video directly from Pioneer you will need to add the line RecordVideo=1 somewhere within your config.ini file. Then once ingame you can press Ctrl+ScrLk to start or stop recording.&lt;br /&gt;
&lt;br /&gt;
=== How do I find star X in the star map ===&lt;br /&gt;
&lt;br /&gt;
First it is important to note that just like in real life, names are not unique. The star map allows the player to search for either name or coordinates of a system. The search is done in the local region of the currently selected system.&lt;br /&gt;
&lt;br /&gt;
Thus a standard way of finding a system is to type in the name in the search field in the star map (generally refereed to as &amp;quot;sector view&amp;quot;). If you know the system is within a few ly from your position, then have your current location selected when you do the search, since it only does a &amp;quot;local&amp;quot; search in space. If the search fails, go to the sector where the star is supposed to be, either by typing the coordinates into the search field, or by using arrows, mark a nearby star in that system, and do another search. You can scroll the star map super fast by holding in the Shift key.&lt;br /&gt;
&lt;br /&gt;
=== I have a Taxi mission to system X, but which starport? ===&lt;br /&gt;
&lt;br /&gt;
For Taxi missions any starport will do, as long as you dock before the deadline.&lt;br /&gt;
&lt;br /&gt;
=== Starsystem names are not unique ===&lt;br /&gt;
&lt;br /&gt;
This is not a bug, space is big, and just here on Earth it is quite common with cities and villages sharing the same name, sometimes quite close.&lt;br /&gt;
&lt;br /&gt;
=== I picked up a mission to a starport in a system, but when I search for the system, it seems that it doesn't have the destination starport, or even uninhabited. ===&lt;br /&gt;
&lt;br /&gt;
As mentioned above, there could be multiple systems with the same name. Each mission states the coordinates (Sirius (1,0,-1) for example) of the destination system, and you can enter them into the search field on the sector map, to find the correct system.&lt;br /&gt;
&lt;br /&gt;
=== I end up &amp;quot;a big number&amp;quot; AU away from the star when I hyper jump to a system ===&lt;br /&gt;
&lt;br /&gt;
This happens in binary star systems. You can select the star you want to jump to from the [[Manual#System_info|System View]].&lt;br /&gt;
&lt;br /&gt;
=== Map survey / scan mission does not progress ===&lt;br /&gt;
Make sure: &lt;br /&gt;
* if you have an orbit scan mission, you need an orbit scanner, and if you have a surface scan mission you need a surface scanner. &lt;br /&gt;
* Also make sure you're flying above the minimum altitude, and below the max. &lt;br /&gt;
* Also make sure you're in the right system (both coordinates and name must match), and at the right body.&lt;br /&gt;
&lt;br /&gt;
=== Major/Minor Import/Export is wrong ===&lt;br /&gt;
There are two levels: system and station. A system can be an importer of X, but a station in that system can be an exporter of X relative the system as a whole, meaning the import/export of a specific station is relative to the import/export price of the system as a whole.&lt;br /&gt;
&lt;br /&gt;
== Technical FAQ ==&lt;br /&gt;
&lt;br /&gt;
=== What is the system requirement for runing the game? ===&lt;br /&gt;
&lt;br /&gt;
Current &amp;quot;stable&amp;quot; (if indeed we have one) [https://pioneerspacesim.net/page/download/ release] is 2021-02-03, and is built on Ubuntu 20.04 Linux machine and a Windows machine, and requires OpenGL 3.2 compatible hardware.&lt;br /&gt;
We also offer a [https://flathub.org/apps/details/net.pioneerspacesim.Pioneer flatpak] script. If you want to compile the game, then please install requirements listed in [https://github.com/pioneerspacesim/pioneer/blob/master/COMPILING.txt COMPILING.txt]&lt;br /&gt;
&lt;br /&gt;
=== Installing the game ===&lt;br /&gt;
&lt;br /&gt;
The releases are made when developers feel it's been &amp;quot;a while&amp;quot;, relative to the number of new additions that have been added that they want players to enjoy / playtest. Releases for Windows and GNU/Linux are now (2021) found on the [https://github.com/pioneerspacesim/pioneer/releases github releases page], and Linux versions are currently built on a [https://github.com/pioneerspacesim/pioneer/blob/master/.github/workflows/build-ci.yml Ubuntu 20.04] (virtual) machine, thus that system should not have any compatibility issues.&lt;br /&gt;
&lt;br /&gt;
==== Build from source ====&lt;br /&gt;
&lt;br /&gt;
The best way to ensure your pioneer is compatible with you Linux system, and of latest, &amp;quot;bleeding edge&amp;quot;, version is to install from source. This is described in [https://github.com/pioneerspacesim/pioneer/blob/master/COMPILING.txt COMPILING.txt]. Playing this way is also the best way you can help the developers, i.e. find and report the latest bugs you encounter.&lt;br /&gt;
&lt;br /&gt;
==== Installing using flatpak ==== &lt;br /&gt;
If you're having trouble getting pioneer to run on your Linux distribution, and you do not want to build from source, then we recommend [https://flathub.org/apps/details/net.pioneerspacesim.Pioneer flatpak] that resolves dependencies for you. Follow [https://flatpak.org/setup/ this] on how to use it, if need be. E.g. on Linux Mint these images are already [https://flatpak.org/setup/Linux%20Mint included] by default in their app store. On other distributions it is at most needed to install flatpak and then issue, from a terminal:&lt;br /&gt;
&lt;br /&gt;
  flatpak install net.pioneerspacesim.Pioneer&lt;br /&gt;
&lt;br /&gt;
==== Error loading shared libraries (e.g.libassimp.so.&amp;lt;x&amp;gt;) ====&lt;br /&gt;
&lt;br /&gt;
The linux version of Pioneer is build on a Ubuntu 20 machine. Currenlty (2021-05), this can cause some debian machines, that have an older verison of libassimp, to throw an error, e.g.:&lt;br /&gt;
&lt;br /&gt;
    error while loading shared libraries: libassimp.so.5:&lt;br /&gt;
    cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
This is fixed either by building pioneer from source, against the shared libraries that are on your particular machine (then you get an even more updated &amp;quot;bleeding edge&amp;quot; build of pioneer!), or install the correct version of the package that is missing: https://packages.debian.org/unstable/libassimp5 (or try to find an older release)&lt;br /&gt;
&lt;br /&gt;
==== Where is the Mac version? ====&lt;br /&gt;
&lt;br /&gt;
Pioneer's development team is mainly on Linux and Windows, and does currently not have the ability to build and maintain a Mac version. To build a Mac release we actually need access to a Mac machine, which, unfortunately, none of the developers currently have. If you have a Mac which can compile and upload pioneer for us on a regular basis, then please contact us (IRC).&lt;br /&gt;
&lt;br /&gt;
Update: OSX builds have been discontinued due to lack of maintainer and Apple's deprecation of OpenGL. We do not intend to offer them in the near future - we will need to migrate the rendering path to Vulkan and have enough of a user base to warrant spending time on OSX compatibility.&lt;br /&gt;
&lt;br /&gt;
==== Where do I find nightly builds of Pioneer ====&lt;br /&gt;
&lt;br /&gt;
They're available on github [https://github.com/pioneerspacesim/pioneer/actions?query=workflow%3A%22Build+Pioneer%22+branch%3Amaster actions page]. Note: thuis currently requires [https://github.com/actions/upload-artifact/issues/51 login to github] to download. A new build is made each time a pull request is merged with new code, and also each proposed pull request is built, which is a great way to test features prior to them being merged into the master branch.&lt;br /&gt;
&lt;br /&gt;
==== Where do I find older versions of Pioneer ====&lt;br /&gt;
&lt;br /&gt;
You can find older versions starting from December 2014 (2014-12-05) on our [http://sourceforge.net/projects/pioneerspacesim/files sourceforge] page. 2014-11-18 was the last version supporting OpenGL 2, between 2014-11-19 to 2014-12-07 Pioneer required OpenGL 3.2. From 2014-12-08 only OpenGL 3.1 is required. Over at [http://www.moddb.com/games/pioneer/downloads moddb] they have windows version going further back in time.&lt;br /&gt;
&lt;br /&gt;
==== How do I play on old computer ====&lt;br /&gt;
&lt;br /&gt;
Your best bet is to use an older version, or if you have another computer you can use virtualGL to let pioneer run on a remote (modern) machine and forward it to an older machine, as described on the [https://spacesimcentral.com/community/pioneer/a-request-for-instrumental-pioneer/ forum], this command works best (but combat/action is too laggy, so it is only a viable solution for playing peaceful missions):&lt;br /&gt;
&lt;br /&gt;
  vglconnect user@server_executing_pioneer_ip -CY -p SSH_port 'cd /path_of_pioneer_compilation_folderme/ &amp;amp;&amp;amp; ./pioneer'&lt;br /&gt;
&lt;br /&gt;
=== How/where do I report my bug/crash ===&lt;br /&gt;
&lt;br /&gt;
Bug reporting is the most important part where you as a player can help the community. When you encounter something that seems strange or odd in the game, please report it, preferably to our [https://github.com/pioneerspacesim/pioneer/issues issue tracker], but you can also stop by the [[IRC|IRC channel]]. When you report it, always mention pioneer verision (shown in lower right hand corner in the starting screen [https://user-images.githubusercontent.com/18342621/118388006-6ee03080-b62a-11eb-8d48-bf66f0820d5f.png png])&lt;br /&gt;
&lt;br /&gt;
When having problems with graphics, or pioneer not starting/crashing, please attach the files '''output.txt''' and '''opengl.txt''' from the pioneer [http://pioneerwiki.com/wiki/FAQ#Where_is_the_configuration_file.2C_saved_games.2C_screenshots.3F config folder] in your home folder / My Documents folder. If you didn't get the '''output.txt''' file, then make sure '''RedirectStdio=1''' in '''config.ini'''.&lt;br /&gt;
&lt;br /&gt;
It is important to include as much of the following information as possible in each issue report, much of this is available to use from the '''output.txt''' and '''opengl.txt''' but if you cannot attach them then please tell us:&lt;br /&gt;
&lt;br /&gt;
*The version of pioneer you are trying to run (''build date or ingame version number'') &lt;br /&gt;
*What operating system you are running, Windows XP/Vista/7/8/10, Linux (''what distribution''), OSX. &lt;br /&gt;
*Your computers system specifications - CPU / RAM / Graphics card. &lt;br /&gt;
*Whether you have downloaded it from our site, or if you are building it from the source code.&lt;br /&gt;
&lt;br /&gt;
=== Debug backtrace ===&lt;br /&gt;
When the game crashes, one of most valuable pieces of information you can provide the development team, is a backtrace. To get a backtrace, the game must have been compiled in debug mode, and then started through a debugger. If you compile the game yourself, from source, it will by default build a debug mode.&lt;br /&gt;
&lt;br /&gt;
==== Windows Visual Studio ====&lt;br /&gt;
&lt;br /&gt;
* Compile the game in debug mode (should be the default setting). &lt;br /&gt;
* After building it, press F5 or go to Debug-&amp;gt;Start Debugging. Note: it will run slowly, starting a new game or loading a new one in particular. That's normal.&lt;br /&gt;
* Instead of a full out crash, you'll get a freeze and it should automatically switch back to Visual Studio. If it freezes and doesn't switch back, do that manually.&lt;br /&gt;
* At that point, Visual Studio should have opened a couple new panes/sub windows at the bottom. One of these is 'Call Stack.' Right click in it, select 'Select All.' Then right click in there again and select 'Copy with source paths.'&lt;br /&gt;
* Then paste that information into the bug-report (preferably as a [https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet code formatted block])&lt;br /&gt;
* After that you can Debug-&amp;gt;Stop to shut down Pioneer again.&lt;br /&gt;
&lt;br /&gt;
==== Linux gdb ====&lt;br /&gt;
* Make sure gdb (The GNU Debugger) is installed on you system (available in package managers of all Linux distributions).&lt;br /&gt;
* Then start pioneer by prefixing the command with gdb followed by the normal command to start pioneer. Eg. if you normally do:&lt;br /&gt;
&lt;br /&gt;
  cd pioneer/&lt;br /&gt;
  ./build/pioneer&lt;br /&gt;
&lt;br /&gt;
then to run in debug mode, you need to run it through gdb:&lt;br /&gt;
&lt;br /&gt;
  cd pioneer/&lt;br /&gt;
  gdb ./build/pioneer&lt;br /&gt;
&lt;br /&gt;
then from inside gdb, type &amp;quot;run&amp;quot;, which starts pioneer. Play until you get the crash, which drops you out to gdb again. Type 'bt' or 'backtrace' in the gdb command line, and save the output to you bug-report.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Where is the configuration file, saved games, screenshots? ===&lt;br /&gt;
&lt;br /&gt;
*Windows: My Documents\Pioneer &lt;br /&gt;
*OS X: /Users/your_username/Library/Application Support/Pioneer &lt;br /&gt;
*Linux: /home/your_username/.pioneer&lt;br /&gt;
Update 2024-10: Pioneer now prefers storing its user data in $XDG_DATA_HOME/pioneer, falling back to ~/.local/share/pioneer if that variable is not set. ~/.pioneer is used only for backwards-compatibility reasons.&lt;br /&gt;
&lt;br /&gt;
=== New pioneer version doesn't start ===&lt;br /&gt;
This could be because new configuration is incompatible with the local, try remmoving your pioneer configuration folder, such that the game will auto-generate new configuration file anew. &lt;br /&gt;
&lt;br /&gt;
=== I'm getting graphical issues ===&lt;br /&gt;
&lt;br /&gt;
Such as wrong textures, ships missing from the view, text display glitches. '''Updating the display drivers usually solve these problems.'''&lt;br /&gt;
&lt;br /&gt;
These usually occur on older graphics adapters, or because of outdated GPU drivers. Not too old NVidia and ATI cards are usually enough to play the game, but integrated GPUs are usually not enough.&lt;br /&gt;
&lt;br /&gt;
=== I'm getting graphical issues, such as snow-like sky and transparent terrain ===&lt;br /&gt;
&lt;br /&gt;
This is probably caused by the eclipse shader which isn't supported by some open source graphic drivers. You could install the proprietary drivers, if available, or disable the eclipse effect by adding DisableEclipse=1 to your pioneer configuration file (config.ini).&lt;br /&gt;
&lt;br /&gt;
=== My OpenGL Version is below 3.2, &amp;quot;Pioneer cannot run on your graphics card&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
UPDATE: Pioneer dropped 2.1 support in September, 2018. You need to checkout and compile a version prior to this, and do:&lt;br /&gt;
&lt;br /&gt;
Open your pioneer configuration file, and set: &amp;quot;RendererName=Opengl 2.1&amp;quot;. This should allow pioneer to run, provided your hardware supports OpenGL 2.1, which it should if you were able to run Pioneer up until 2014-11-18 when support was dropped. Note, support for multiple renderers was added 2017-03-03, i.e. both OpenGL 2.1 and 3.1; however, you need to edit your configuration file to select the proper one, as no auto-detection is done. Actually, if your hardware isn't extraordinarily old, OpenGL 3.2 should be supported if you update your drivers.&lt;br /&gt;
&lt;br /&gt;
You can also find older versions (pre 20141119) on [http://www.moddb.com/games/pioneer/downloads moddb].&lt;br /&gt;
&lt;br /&gt;
=== I see blank untextured Gas Giants and I'm using an ATI graphic card under GNU/Linux with open source drivers (Mesa R600) ===&lt;br /&gt;
&lt;br /&gt;
With chipsets using the R600 gallium drivers the shader fails to compile. There is a workaround that uses less noise octaves. This produces less detailed texture maps for the gas/ice giants but they still look good and at least the program runs.&lt;br /&gt;
&lt;br /&gt;
Try setting &amp;lt;code&amp;gt;AMD_MESA_HACKS=1&amp;lt;/code&amp;gt; in ~/.pioneer/config.ini or disable GPU jobs entirely by setting &amp;lt;code&amp;gt;EnableGpujobs=0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== I'm getting text rendering artefacts ===&lt;br /&gt;
&lt;br /&gt;
Some system monitoring HUD utilities, like MSI Afterburner, and Steam overlay&amp;amp;nbsp;can cause distorted text rendering. Try switching them off.&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== The game freezes at the intro screen ===&lt;br /&gt;
&lt;br /&gt;
If you cannot start the game at all, edit the configuration file and change value DisableShaders to 1.&lt;br /&gt;
&lt;br /&gt;
=== The game crashes on start with an error message about imgui_draw.cpp ===&lt;br /&gt;
&lt;br /&gt;
Check if any parent folder of Pioneer has any accented letters (e.g éáűúóü etc.). If so, copy the game to somewhere, where there's none of these in the folder tree.&lt;br /&gt;
&lt;br /&gt;
=== The game crashes after the loading screen. I'm using ATI free drivers on GNU/Linux. ===&lt;br /&gt;
&lt;br /&gt;
If you are getting a GL_INVALID_ENUM in console, could be because some ships uses textures in a format that, because of patents, is not included in the main mesa package. Search for libtxc-dxtn or libtxc_dxtn in your distribution and install it.&lt;br /&gt;
&lt;br /&gt;
=== The game hangs when I turn on the ''Enable Cockpit (EXPERIMENTAL)'' option ===&lt;br /&gt;
&lt;br /&gt;
It's because it's an experimental feature right now, infrastructure mostly. You need a cockpit model for to be able to use it.&lt;br /&gt;
&lt;br /&gt;
You can find one heavily WIP one posted on the Community Forums. Note that it's a highly experimental feature right no, so please treat it accordingly.&lt;br /&gt;
&lt;br /&gt;
=== My joystick is &amp;quot;drifting&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
It's recommended that you calibrate your joystick using the OS facilities (Joystick Settings on Windows, jstest-gtk on linux) as this fixes 99% of all issues with incorrectly configured joysticks. However, if you want to adjust specific parameters for each joystick axis, support for customizable deadzone and sensitivity is available through the configuration file. Open config.ini and adjust the deadzone (DZ) and sensitivity exponent curve (CV) values of the corresponding axis to your liking.&lt;br /&gt;
&lt;br /&gt;
 ; example joystick configuration&lt;br /&gt;
 [Joystick.03000000a30600006404000000010000]&lt;br /&gt;
 Axis0=DZ0.0 CV1.0&lt;br /&gt;
 Axis1=DZ0.0 CV1.0&lt;br /&gt;
 Axis2=DZ0.0 CV1.0&lt;br /&gt;
 Axis3=DZ0.0 CV1.0&lt;br /&gt;
 Name=Saitek Cyborg USB Stick&lt;br /&gt;
&lt;br /&gt;
=== I'm getting poor performance ===&lt;br /&gt;
&lt;br /&gt;
The heaviest part of the game is planetary terrain generation. Turn down the &amp;quot;Detail distance&amp;quot; and &amp;quot;Fractal detail&amp;quot; settings, they have the most impact for performance. Reducing screen resolution is also recommended, this can be done in the [[Settings_Menu|Settings Menu]], or manually to a custom values by editing your personal configuration file, on Linux: &amp;lt;code&amp;gt;~/.pioneer/config.ini&amp;lt;/code&amp;gt;. On Windows: &amp;lt;code&amp;gt;Documents/pioneer/config.ini&amp;lt;/code&amp;gt; Look for &amp;lt;code&amp;gt;ScrHeight&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ScrWidth&amp;lt;/code&amp;gt; entries. Also consider reducing number of buildings in cities.&lt;br /&gt;
&lt;br /&gt;
=== I've enabled anti-aliasing in the config file, but it does not work ===&lt;br /&gt;
&lt;br /&gt;
Make sure the AA settings are not overridden by your graphics card settings, on NVidia AA should be set to &amp;quot;application controlled&amp;quot; mode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Full screen mode is incorrectly scaled ===&lt;br /&gt;
&lt;br /&gt;
If you are on Windows, try:&lt;br /&gt;
&amp;lt;pre&amp;gt;Sounds like windows 7 desktop-scaling issues.&lt;br /&gt;
Try adding some compatability modes to the Pioneer.exe.&lt;br /&gt;
Right click it and Choose properties -&amp;gt; Compatability -&amp;gt; Tick&lt;br /&gt;
Disable desktop scaling, and Disable desktop composition.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
=== What's the history of Pioneer ===&lt;br /&gt;
&lt;br /&gt;
The project started in 2008 by Tom Morton, and was [https://web.archive.org/web/20150326115725/http://spacesimcentral.com/ssc/topic/742-pioneer-new-gpl-frontier-elite-2-style-game/ announced in 2010] on the Space Sim Central forum (for space games), and on [https://forums.frontier.co.uk/threads/the-pioneer-thread.1596/ frontier forum]. For more history, see [http://www.rockpapershotgun.com/2011/12/06/back-to-frontier-pioneer/ Rock Paper Shotgun article], and [[Media_Coverage]]&lt;br /&gt;
&lt;br /&gt;
=== How much development is being made? ===&lt;br /&gt;
&lt;br /&gt;
Development is sporadic, but no month goes by without some change to the source, fixing bugs, cleaning up code, introducing new content and/or features; see [https://github.com/pioneerspacesim/pioneer/blob/master/Changelog.txt Changelog.txt]. All contributors work on pioneer for free when they have time and motivation.&lt;br /&gt;
&lt;br /&gt;
=== What's the deal with the inconsistent UI interface? ===&lt;br /&gt;
Basically, Pioneer has during the 2013-2020s had up to three different, simulteneous, UI systems, for a background and screen shots, please refer to:&lt;br /&gt;
[[GUI_introduction#Background_history]]&lt;br /&gt;
&lt;br /&gt;
=== Do you accept contributions? ===&lt;br /&gt;
&lt;br /&gt;
Hell yes! Pioneer is not any one persons personal project. It is the sum of the contributions made by the people who play and care about the continued development of the game. See: [[How_you_can_contribute|How to contribute]].&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=IRC&amp;diff=4656</id>
		<title>IRC</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=IRC&amp;diff=4656"/>
		<updated>2024-10-08T10:22:57Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: Add info of new Matrix bridge&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''IRC''' stands for '''I'''nternet '''R'''elay '''C'''hat. We [https://koshka.love/babel/irc-forever.html use it] for real-time internet text messaging related to the project.&lt;br /&gt;
&lt;br /&gt;
All the engaged people from the community and the dev team can be found there, and are usually quick to answer during European day/evening time.&lt;br /&gt;
&lt;br /&gt;
== Connect ==&lt;br /&gt;
&lt;br /&gt;
As of 2021-05-26, Pioneer has moved to the [https://libera.chat/guides/ libera.chat] IRC network, which can be connected to at irc.libera.chat, port 6667 (6697 for SSL).&lt;br /&gt;
&lt;br /&gt;
We use the following channel:&lt;br /&gt;
&lt;br /&gt;
 #pioneer&lt;br /&gt;
 -This is the only and official pioneer channel&lt;br /&gt;
&lt;br /&gt;
=== Getting started ===&lt;br /&gt;
In the above mentioned [https://libera.chat/guides/ link] you can find basics of using liber.chat IRC, including [https://libera.chat/guides/registration registration] of your nickname on IRC channel.&lt;br /&gt;
&lt;br /&gt;
=== Webchat ===&lt;br /&gt;
Easiest if you're new to IRC, is to just click [https://kiwiirc.com/nextclient/irc.libera.chat/?channel=#pioneer here] (or use libera's own kiwi IRC [https://web.libera.chat/#pioneer here]) which will open a webchat instance to the #pioneer channel in your browser (type message at bottom, where text indicates).&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
If you plan to use IRC frequently, you are adviced to download a real IRC client program. There are [https://en.wikipedia.org/wiki/Comparison_of_Internet_Relay_Chat_clients many options], but some popular programs are:&lt;br /&gt;
&lt;br /&gt;
*[http://www.leafdigital.com/software/leafchat/ Leafchat] (multiplatform, GUI)&lt;br /&gt;
*[http://www.irssi.org/ irssi] (popular, terminal based)&lt;br /&gt;
*[http://xchat.org/ X-Chat] (free on Linux only, almost always available in distribution repositories)&lt;br /&gt;
*[http://www.hexchat.org/ HexChat] (fork of X-Chat, free on Windows and Linux, not always available in distribution repositories)&lt;br /&gt;
*[https://weechat.org/about WeeChat] (multiplatform)&lt;br /&gt;
&lt;br /&gt;
=== Channel Info ===&lt;br /&gt;
&lt;br /&gt;
The channel has a bot, in [https://pioneerwiki.com/wiki/Jameson cmd_jameson], to which one can leave messages to users who are currently not logged in. A number of users are in the channel 24/7 and check the backlog daily. Usually, the channel is quiet during CET night.&lt;br /&gt;
&lt;br /&gt;
=== IRC Backlog / Bouncer ===&lt;br /&gt;
It is possible to get channel backlog for when not logged in by using an [[Bouncer|IRC Bouncer]] that is logged into the channel as your user, and then you connect to this service, rather than directly to the IRC network (libera.chat). It will then replay the channel history since your last visit. There are [https://wiki.znc.in/Providers several znc providers] one can use. The pioneer development team is currently running one for anyone active in the channel discussions and/or in the game development, just ask devs in IRC if you are interested in an account. Once one has been made, follow [[Bouncer|instructions here]].&lt;br /&gt;
&lt;br /&gt;
=== Matrix bridge ===&lt;br /&gt;
There used to be a global matrix bridge for Libera, but it [https://libera.chat/news/matrix-bridge-disabled-retrospective had to be shut down]. As of October 2024, pioneer dev team is now running its own matrix bridge, which you can join [https://matrix.to/#/#pioneer:pioneerspacesim.net here] (note: what you say may be visible to people not represented in the channel at the time you say it).&lt;br /&gt;
&lt;br /&gt;
== No Freenode? ==&lt;br /&gt;
Pioneer's IRC channel was on the freenode network at least from 2013-2021. However, in May of 2021, there was a [https://www.kline.sh/ hostile take over] of the freenode network, and we joined the original freenode staff, and most other channels, in moving to its spiritual successor: libera.chat. For more info, please see:&lt;br /&gt;
* [https://www.devever.net/~hl/freenode_abuse Freenode IRC operators now engaging in routine abuses of power]&lt;br /&gt;
* [https://github.com/freenode/web-7.0/commit/1194a3e71a427a669ccdddee22006416d46eeb43 freenode policy update]&lt;br /&gt;
* [https://mastodon.sdf.org/@kline/106299403921451814 andrew lee just seized over 700 channels on freenode]&lt;br /&gt;
* [https://www.gentoo.org/news/2021/05/26/gentoo-freenode-channels-hijacked.html Gentoo Freenode channels have been hijacked]&lt;br /&gt;
* [https://twitter.com/mjg59/status/1397389042619097095 More hijacking]&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=GUI_introduction&amp;diff=4655</id>
		<title>GUI introduction</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=GUI_introduction&amp;diff=4655"/>
		<updated>2024-09-27T11:07:19Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: /* PiGUI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page aims to give pointers as to how to get started making UI using pioneer's Lua scripts. For deeper discussion on pioneer's &amp;quot;under the hood&amp;quot; rendering, see forum post: [https://forum.pioneerspacesim.net/viewtopic.php?f=3&amp;amp;t=489 A simple (sort of) description of Pioneers rendering]&lt;br /&gt;
&lt;br /&gt;
= Background history =&lt;br /&gt;
Pioneer's history of different UI (User Interface) systems is a long and winding one, thus the following is a lament of what was.&lt;br /&gt;
&lt;br /&gt;
== OldUI ==&lt;br /&gt;
What is now called &amp;quot;OldUI&amp;quot; by the dev team, is the original UI, from when Pioneer started as a 1:1 clone of Frontier, in 2008, implemented in pure C++. Any change to the UI elements required C++ knowledge, a full copy of the source code, with compiler, and re-compilation. &lt;br /&gt;
&lt;br /&gt;
[[File:Interact.bbsad.1.png|400px]]&lt;br /&gt;
[[File:Manual_map_info.gif|500px]]&lt;br /&gt;
&lt;br /&gt;
== NewUI ==&lt;br /&gt;
&lt;br /&gt;
NewUI was meant to move the UI from C++ to Lua, so we don't need to re-compile the game for every change, and allow players to easily modify the game. The station screens were successfully converted in 2013, by [https://github.com/pioneerspacesim/pioneer/pull/2589 #2589 ], but never the cockpit, nor starmaps.&lt;br /&gt;
&lt;br /&gt;
Due to lack of time, and coders, transition stalled, with SystemInfo being halfway there ([https://github.com/pioneerspacesim/pioneer/pull/3564 #3564]). At the time of writing this the SectorView (F2) and OrbitView (F6), and others are still defined in the old hard coded C++ source code.&lt;br /&gt;
&lt;br /&gt;
NewUI is recognized by the Deep blue screens, with thin cyan borders on buttons. The bottom Frontier &amp;quot;coockpit&amp;quot;/radar dashbord is still OldUI.&lt;br /&gt;
&lt;br /&gt;
[[File:Manual_infoview_06_crew.gif|600px]]&lt;br /&gt;
&lt;br /&gt;
== PiGUI ==&lt;br /&gt;
&lt;br /&gt;
The main creator of NewUI (robn) left the project which was now in a limbo between two simultaneous different UI systems. As ecraven joined, in the summer of 2016 he demonstrated how a third party C++ library, [https://github.com/ocornut/imgui Dear Imgui], could be used to fast prototyping, and he quickly moved the OldUI cockpit to Imgui, and this was done from lua scripts, as the Imgui functions were exposed to the Lua scripting side of the project, thus we call this UI: &amp;quot;PiGUI&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Pioneer had at this time 3 different UI systems, in the transitioning phase to pure PiGUI. A collaborative effort of several new developers (sturnclaw, Gliese852, vakhoir) culminated to remove all NewUI screens by converting them to PiGUI [https://github.com/pioneerspacesim/pioneer/pull/5032 #5032] which finished in december of 2020.&lt;br /&gt;
&lt;br /&gt;
In the transition to PiGui, the galaxy (image) map (F8) was removed, since motivation in the dev team to purge the code base of NewUI right away was higher than to port it to PiGui, as it didn't have any real purpose for the game, other than as a fun gimmick. (The galaxy image is still used under the hood to compute star density in sectors)&lt;br /&gt;
&lt;br /&gt;
At the time of writing (2021-05) OldUI still lingers (F6,F7,F8 screens), but PiGui has replaced most of OldUI, and all of NewUI.&lt;br /&gt;
&lt;br /&gt;
Update 2024-09-27: Pioneer is pure PiGUI now and as of August 2021, with a re-written &amp;quot;improved PiGUI&amp;quot; code in [https://github.com/pioneerspacesim/pioneer/pull/5156 #5156]&lt;br /&gt;
&lt;br /&gt;
[[File:Bbs_pigui.png|500px]]&lt;br /&gt;
&lt;br /&gt;
= Getting started with UI (PiGUI) =&lt;br /&gt;
&lt;br /&gt;
Some pointers on how to get started with PiGUI. The perhaps easiest is to look at the example code script provided below, and modify it. Then search the code for other UI elements you're interested in duplicating. However, let us look at an in-depth way to go from imgui to pioneer's UI.&lt;br /&gt;
&lt;br /&gt;
== Imgui ==&lt;br /&gt;
&lt;br /&gt;
Start with downloading and compiling the stand alone [https://github.com/ocornut/imgui Imgui] C++ program according to instructions on their website, and launch, here, we've compiled the sdl opnegl 3 example and launching it from linux command line:&lt;br /&gt;
&lt;br /&gt;
 ./examples/example_sdl_opengl3/example_sdl_opengl3 &lt;br /&gt;
&lt;br /&gt;
Which results in a demo program that shows all features of Imgui.&lt;br /&gt;
&lt;br /&gt;
[[File:imgui_cpp_demo.png]]&lt;br /&gt;
&lt;br /&gt;
Many of the features of Imgui are ported to lua in pioneer, but not all. Let's look at how this code makes its meandering path to our in-game pioneer screen. (Note: it might be worth investigating [https://github.com/tpecholt/imrad ImRAD], to prototype GUI, then translate C++ to pigui)&lt;br /&gt;
&lt;br /&gt;
First, look at the file above, we see the tab-bar is looking very sexy. By what magic is it made? Let's see if we can find it in imgui's C++ source (don't worry, you don't need to know C/C++, other than maybe recognizing if/for-loops and arrays). So we search the C++ source code for some string/sentence visible the demo ap, e.g. &amp;quot;Beetroot&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:imgui_cpp_source.png]]&lt;br /&gt;
&lt;br /&gt;
On line 2026 we find &amp;quot;Beetroot&amp;quot;, it's part of a data structure, with the other names we saw in the tab-bar in the demo app. This data structure (an array) is then used on line 2031 (for the check boxes, look at the image of the demo again) and then line 2038 for what seems to be the tab-bar. The function ImGui::BeginTabBar seems to be a good candidate for what's making the magic. Let's see if we can find it in pioneer's source code, e.g. by searching from pioneer's source root directory:&lt;br /&gt;
&lt;br /&gt;
 git grep -i BeginTabBar&lt;br /&gt;
 data/pigui/libs/forwarded.lua:ui.beginTabBar = pigui.BeginTabBar&lt;br /&gt;
 data/pigui/libs/wrappers.lua:    local open = pigui.BeginTabBar(id)&lt;br /&gt;
 src/lua/LuaPiGui.cpp:    bool state = ImGui::BeginTabBar(str.c_str(), tab_bar_flags);&lt;br /&gt;
 src/lua/LuaPiGui.cpp:        { &amp;quot;BeginTabBar&amp;quot;, l_pigui_begin_tab_bar },&lt;br /&gt;
 src/pigui/PerfInfo.cpp:      if (ImGui::BeginTabBar(&amp;quot;PerfInfoTabs&amp;quot;)) {&lt;br /&gt;
 src/pigui/PerfInfo.cpp:      if (ImGui::BeginTabBar(&amp;quot;Texture List&amp;quot;)) {&lt;br /&gt;
&lt;br /&gt;
(here, we have ignored the contrib/ folder, that's where we put third party libraries, like imgui, we don't ever want to work or read those). We find matches for BeginTabBar in src/lua/LuaPiGui.cpp. This is where the imgui function is imported (from contrib/imgui) to pioneer's source, then in LuaPiGui we expose it to Lua, by the function l_pigui_begin_tab_bar, which is then mapped to the key &amp;quot;BeginTabBar&amp;quot;. Note: this could be arbitrary, e.g. &amp;quot;Begin_Tab_Bar&amp;quot;, or &amp;quot;begin_tab_bar&amp;quot;, etc. either way, it's the name by which we can call it from the Lua code.&lt;br /&gt;
&lt;br /&gt;
Searching BeginTabBar in data/ we find a match in data/pigui/libs/forwarded.lua:&lt;br /&gt;
&lt;br /&gt;
 ui.beginTabBar = pigui.BeginTabBar&lt;br /&gt;
&lt;br /&gt;
This is where we re-name it to something more akin to our lua defined &amp;quot;pigui&amp;quot;. So when we use it in our code, we should preferably use &amp;quot;ui.beginTabBar&amp;quot;. See example of this further down.&lt;br /&gt;
&lt;br /&gt;
== PiGUI ==&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
Below is a snippet that if saved to a lua file placed anywhere in data/modules/ will draw a window on the WorldView screen.&lt;br /&gt;
==== Result ====&lt;br /&gt;
[[File:hello_world_pigui.png]]&lt;br /&gt;
&lt;br /&gt;
==== Code ====&lt;br /&gt;
 -- Copyright © 2008-2021 Pioneer Developers. See AUTHORS.txt for details&lt;br /&gt;
 -- Licensed under the terms of the GPL v3. See licenses/GPL-3.txt&lt;br /&gt;
 &lt;br /&gt;
 --[[&lt;br /&gt;
 	data/pigui/modules/hello_world.lua&lt;br /&gt;
 &lt;br /&gt;
 	Written for @impaktor as a tutorial on how to get started with pigui by&lt;br /&gt;
 	@sturnclaw, extended by @impaktor&lt;br /&gt;
 --]]&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 local Game = require 'Game'&lt;br /&gt;
 &lt;br /&gt;
 -- pigui is traditionally imported as 'ui' for simplicity.&lt;br /&gt;
 local ui = require 'pigui'&lt;br /&gt;
 &lt;br /&gt;
 -- gameView is needed to dispatch to our Hello World window&lt;br /&gt;
 local gameView = require 'pigui.views.game'&lt;br /&gt;
 &lt;br /&gt;
 -- we want all displayed text to be localized&lt;br /&gt;
 local lui = require 'Lang'.GetResource('ui-core')&lt;br /&gt;
 &lt;br /&gt;
 -- ui.WindowFlags is an acceleration structure to allow composing window flags&lt;br /&gt;
 -- once and reusing them with each call.&lt;br /&gt;
 local window_flags = ui.WindowFlags {&lt;br /&gt;
 	-- We don't want to be able to collapse the window.&lt;br /&gt;
 	-- &amp;quot;NoCollapse&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 local amount = 1000&lt;br /&gt;
 &lt;br /&gt;
 local Character = require &amp;quot;Character&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 -- Register this window as a Game-view module. It will be displayed when the&lt;br /&gt;
 -- player is in the World View.&lt;br /&gt;
 -- registerModule takes two parameters, the unique key of the module, and the&lt;br /&gt;
 -- module descriptor table.&lt;br /&gt;
 gameView.registerModule(&amp;quot;Small example&amp;quot;, {&lt;br /&gt;
 &lt;br /&gt;
 	-- Pretty self explanatory, if this is true, draw() is called when the&lt;br /&gt;
 	-- ship is in hyperspace as well as in normal space.&lt;br /&gt;
 	ShowInHyperspace = true,&lt;br /&gt;
 &lt;br /&gt;
 	-- Called once per frame while the module is active. The function is passed&lt;br /&gt;
 	-- the module object (this table) and the frame delta time&lt;br /&gt;
 	draw = function(self, deltaTime)&lt;br /&gt;
 		-- ui.window takes three parameters: the window title, the window flags,&lt;br /&gt;
 		-- and a function containing the body of the window.&lt;br /&gt;
 &lt;br /&gt;
 		-- the window title is an IMGUI string ID - two windows cannot share&lt;br /&gt;
 		-- the same ID at the same stack position. To work around this,&lt;br /&gt;
 		-- everything after ## is not part of the title, but instead used to&lt;br /&gt;
 		-- make the window ID unique.&lt;br /&gt;
 		ui.window(&amp;quot;Debug!##id43&amp;quot;, window_flags, function()&lt;br /&gt;
 			ui.text(&amp;quot;State: &amp;quot; .. Game.player:GetFlightState())&lt;br /&gt;
 &lt;br /&gt;
 			if (ui.beginTabBar(&amp;quot;mytabbar&amp;quot;)) then&lt;br /&gt;
 				if ui.beginTabItem(&amp;quot;squares&amp;quot;) then&lt;br /&gt;
 					ui.text(&amp;quot;test1&amp;quot;)&lt;br /&gt;
 					ui.endTabItem()&lt;br /&gt;
 				end&lt;br /&gt;
 				if ui.beginTabItem(&amp;quot;BALLS!&amp;quot;) then&lt;br /&gt;
 					ui.text(&amp;quot;test2&amp;quot;)&lt;br /&gt;
 					ui.endTabItem()&lt;br /&gt;
 				end&lt;br /&gt;
 				if ui.beginTabItem(&amp;quot;Triangle&amp;quot;) then&lt;br /&gt;
 					ui.text(&amp;quot;test3&amp;quot;)&lt;br /&gt;
 					ui.text(&amp;quot;some more text&amp;quot;)&lt;br /&gt;
 					ui.endTabItem()&lt;br /&gt;
 				end&lt;br /&gt;
 				ui.endTabBar()&lt;br /&gt;
 			end&lt;br /&gt;
 &lt;br /&gt;
 			-- Give player mone if pressing the button&lt;br /&gt;
 			if ui.button(&amp;quot;Give money&amp;quot;, Vector2(100, 0)) then&lt;br /&gt;
 				Game.player:AddMoney(amount)&lt;br /&gt;
 			end&lt;br /&gt;
 &lt;br /&gt;
 			-- draws a horizontal line&lt;br /&gt;
 			ui.separator()&lt;br /&gt;
 &lt;br /&gt;
 			-- Reputation &amp;amp; kills&lt;br /&gt;
 			if ui.collapsingHeader(&amp;quot;Reputation &amp;amp; kills&amp;quot;, {}) then&lt;br /&gt;
 				Character.persistent.player.reputation = ui.sliderInt(&amp;quot;Reputation&amp;quot;, Character.persistent.player.reputation, 0, 512)&lt;br /&gt;
 				ui.sameLine()&lt;br /&gt;
 				ui.text(Character.persistent.player:GetReputationRating())&lt;br /&gt;
 &lt;br /&gt;
 				Character.persistent.player.killcount = ui.sliderInt(&amp;quot;Kills&amp;quot;, Character.persistent.player.killcount, 0, 6000)&lt;br /&gt;
 				ui.sameLine()&lt;br /&gt;
 				ui.text(Character.persistent.player:GetCombatRating())&lt;br /&gt;
 			end&lt;br /&gt;
 &lt;br /&gt;
 		end)&lt;br /&gt;
 	end&lt;br /&gt;
 })&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=GUI_introduction&amp;diff=4649</id>
		<title>GUI introduction</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=GUI_introduction&amp;diff=4649"/>
		<updated>2024-08-16T08:14:10Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: Add link to ImRAD GUI builder&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page aims to give pointers as to how to get started making UI using pioneer's Lua scripts. For deeper discussion on pioneer's &amp;quot;under the hood&amp;quot; rendering, see forum post: [https://forum.pioneerspacesim.net/viewtopic.php?f=3&amp;amp;t=489 A simple (sort of) description of Pioneers rendering]&lt;br /&gt;
&lt;br /&gt;
= Background history =&lt;br /&gt;
Pioneer's history of different UI (User Interface) systems is a long and winding one, thus the following is a lament of what was.&lt;br /&gt;
&lt;br /&gt;
== OldUI ==&lt;br /&gt;
What is now called &amp;quot;OldUI&amp;quot; by the dev team, is the original UI, from when Pioneer started as a 1:1 clone of Frontier, in 2008, implemented in pure C++. Any change to the UI elements required C++ knowledge, a full copy of the source code, with compiler, and re-compilation. &lt;br /&gt;
&lt;br /&gt;
[[File:Interact.bbsad.1.png|400px]]&lt;br /&gt;
[[File:Manual_map_info.gif|500px]]&lt;br /&gt;
&lt;br /&gt;
== NewUI ==&lt;br /&gt;
&lt;br /&gt;
NewUI was meant to move the UI from C++ to Lua, so we don't need to re-compile the game for every change, and allow players to easily modify the game. The station screens were successfully converted in 2013, by [https://github.com/pioneerspacesim/pioneer/pull/2589 #2589 ], but never the cockpit, nor starmaps.&lt;br /&gt;
&lt;br /&gt;
Due to lack of time, and coders, transition stalled, with SystemInfo being halfway there ([https://github.com/pioneerspacesim/pioneer/pull/3564 #3564]). At the time of writing this the SectorView (F2) and OrbitView (F6), and others are still defined in the old hard coded C++ source code.&lt;br /&gt;
&lt;br /&gt;
NewUI is recognized by the Deep blue screens, with thin cyan borders on buttons. The bottom Frontier &amp;quot;coockpit&amp;quot;/radar dashbord is still OldUI.&lt;br /&gt;
&lt;br /&gt;
[[File:Manual_infoview_06_crew.gif|600px]]&lt;br /&gt;
&lt;br /&gt;
== PiGUI ==&lt;br /&gt;
&lt;br /&gt;
The main creator of NewUI (robn) left the project which was now in a limbo between two simultaneous different UI systems. As ecraven joined, in the summer of 2016 he demonstrated how a third party C++ library, [https://github.com/ocornut/imgui Dear Imgui], could be used to fast prototyping, and he quickly moved the OldUI cockpit to Imgui, and this was done from lua scripts, as the Imgui functions were exposed to the Lua scripting side of the project, thus we call this UI: &amp;quot;PiGUI&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Pioneer had at this time 3 different UI systems, in the transitioning phase to pure PiGUI. A collaborative effort of several new developers (sturnclaw, Gliese852, vakhoir) culminated to remove all NewUI screens by converting them to PiGUI [https://github.com/pioneerspacesim/pioneer/pull/5032 #5032] which finished in december of 2020.&lt;br /&gt;
&lt;br /&gt;
In the transition to PiGui, the galaxy (image) map (F8) was removed, since motivation in the dev team to purge the code base of NewUI right away was higher than to port it to PiGui, as it didn't have any real purpose for the game, other than as a fun gimmick. (The galaxy image is still used under the hood to compute star density in sectors)&lt;br /&gt;
&lt;br /&gt;
At the time of writing (2021-05) OldUI still lingers (F6,F7,F8 screens), but PiGui has replaced most of OldUI, and all of NewUI.&lt;br /&gt;
&lt;br /&gt;
[[File:Bbs_pigui.png|500px]]&lt;br /&gt;
&lt;br /&gt;
= Getting started with UI (PiGUI) =&lt;br /&gt;
&lt;br /&gt;
Some pointers on how to get started with PiGUI. The perhaps easiest is to look at the example code script provided below, and modify it. Then search the code for other UI elements you're interested in duplicating. However, let us look at an in-depth way to go from imgui to pioneer's UI.&lt;br /&gt;
&lt;br /&gt;
== Imgui ==&lt;br /&gt;
&lt;br /&gt;
Start with downloading and compiling the stand alone [https://github.com/ocornut/imgui Imgui] C++ program according to instructions on their website, and launch, here, we've compiled the sdl opnegl 3 example and launching it from linux command line:&lt;br /&gt;
&lt;br /&gt;
 ./examples/example_sdl_opengl3/example_sdl_opengl3 &lt;br /&gt;
&lt;br /&gt;
Which results in a demo program that shows all features of Imgui.&lt;br /&gt;
&lt;br /&gt;
[[File:imgui_cpp_demo.png]]&lt;br /&gt;
&lt;br /&gt;
Many of the features of Imgui are ported to lua in pioneer, but not all. Let's look at how this code makes its meandering path to our in-game pioneer screen. (Note: it might be worth investigating [https://github.com/tpecholt/imrad ImRAD], to prototype GUI, then translate C++ to pigui)&lt;br /&gt;
&lt;br /&gt;
First, look at the file above, we see the tab-bar is looking very sexy. By what magic is it made? Let's see if we can find it in imgui's C++ source (don't worry, you don't need to know C/C++, other than maybe recognizing if/for-loops and arrays). So we search the C++ source code for some string/sentence visible the demo ap, e.g. &amp;quot;Beetroot&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:imgui_cpp_source.png]]&lt;br /&gt;
&lt;br /&gt;
On line 2026 we find &amp;quot;Beetroot&amp;quot;, it's part of a data structure, with the other names we saw in the tab-bar in the demo app. This data structure (an array) is then used on line 2031 (for the check boxes, look at the image of the demo again) and then line 2038 for what seems to be the tab-bar. The function ImGui::BeginTabBar seems to be a good candidate for what's making the magic. Let's see if we can find it in pioneer's source code, e.g. by searching from pioneer's source root directory:&lt;br /&gt;
&lt;br /&gt;
 git grep -i BeginTabBar&lt;br /&gt;
 data/pigui/libs/forwarded.lua:ui.beginTabBar = pigui.BeginTabBar&lt;br /&gt;
 data/pigui/libs/wrappers.lua:    local open = pigui.BeginTabBar(id)&lt;br /&gt;
 src/lua/LuaPiGui.cpp:    bool state = ImGui::BeginTabBar(str.c_str(), tab_bar_flags);&lt;br /&gt;
 src/lua/LuaPiGui.cpp:        { &amp;quot;BeginTabBar&amp;quot;, l_pigui_begin_tab_bar },&lt;br /&gt;
 src/pigui/PerfInfo.cpp:      if (ImGui::BeginTabBar(&amp;quot;PerfInfoTabs&amp;quot;)) {&lt;br /&gt;
 src/pigui/PerfInfo.cpp:      if (ImGui::BeginTabBar(&amp;quot;Texture List&amp;quot;)) {&lt;br /&gt;
&lt;br /&gt;
(here, we have ignored the contrib/ folder, that's where we put third party libraries, like imgui, we don't ever want to work or read those). We find matches for BeginTabBar in src/lua/LuaPiGui.cpp. This is where the imgui function is imported (from contrib/imgui) to pioneer's source, then in LuaPiGui we expose it to Lua, by the function l_pigui_begin_tab_bar, which is then mapped to the key &amp;quot;BeginTabBar&amp;quot;. Note: this could be arbitrary, e.g. &amp;quot;Begin_Tab_Bar&amp;quot;, or &amp;quot;begin_tab_bar&amp;quot;, etc. either way, it's the name by which we can call it from the Lua code.&lt;br /&gt;
&lt;br /&gt;
Searching BeginTabBar in data/ we find a match in data/pigui/libs/forwarded.lua:&lt;br /&gt;
&lt;br /&gt;
 ui.beginTabBar = pigui.BeginTabBar&lt;br /&gt;
&lt;br /&gt;
This is where we re-name it to something more akin to our lua defined &amp;quot;pigui&amp;quot;. So when we use it in our code, we should preferably use &amp;quot;ui.beginTabBar&amp;quot;. See example of this further down.&lt;br /&gt;
&lt;br /&gt;
== PiGUI ==&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
Below is a snippet that if saved to a lua file placed anywhere in data/modules/ will draw a window on the WorldView screen.&lt;br /&gt;
==== Result ====&lt;br /&gt;
[[File:hello_world_pigui.png]]&lt;br /&gt;
&lt;br /&gt;
==== Code ====&lt;br /&gt;
 -- Copyright © 2008-2021 Pioneer Developers. See AUTHORS.txt for details&lt;br /&gt;
 -- Licensed under the terms of the GPL v3. See licenses/GPL-3.txt&lt;br /&gt;
 &lt;br /&gt;
 --[[&lt;br /&gt;
 	data/pigui/modules/hello_world.lua&lt;br /&gt;
 &lt;br /&gt;
 	Written for @impaktor as a tutorial on how to get started with pigui by&lt;br /&gt;
 	@sturnclaw, extended by @impaktor&lt;br /&gt;
 --]]&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 local Game = require 'Game'&lt;br /&gt;
 &lt;br /&gt;
 -- pigui is traditionally imported as 'ui' for simplicity.&lt;br /&gt;
 local ui = require 'pigui'&lt;br /&gt;
 &lt;br /&gt;
 -- gameView is needed to dispatch to our Hello World window&lt;br /&gt;
 local gameView = require 'pigui.views.game'&lt;br /&gt;
 &lt;br /&gt;
 -- we want all displayed text to be localized&lt;br /&gt;
 local lui = require 'Lang'.GetResource('ui-core')&lt;br /&gt;
 &lt;br /&gt;
 -- ui.WindowFlags is an acceleration structure to allow composing window flags&lt;br /&gt;
 -- once and reusing them with each call.&lt;br /&gt;
 local window_flags = ui.WindowFlags {&lt;br /&gt;
 	-- We don't want to be able to collapse the window.&lt;br /&gt;
 	-- &amp;quot;NoCollapse&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 local amount = 1000&lt;br /&gt;
 &lt;br /&gt;
 local Character = require &amp;quot;Character&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 -- Register this window as a Game-view module. It will be displayed when the&lt;br /&gt;
 -- player is in the World View.&lt;br /&gt;
 -- registerModule takes two parameters, the unique key of the module, and the&lt;br /&gt;
 -- module descriptor table.&lt;br /&gt;
 gameView.registerModule(&amp;quot;Small example&amp;quot;, {&lt;br /&gt;
 &lt;br /&gt;
 	-- Pretty self explanatory, if this is true, draw() is called when the&lt;br /&gt;
 	-- ship is in hyperspace as well as in normal space.&lt;br /&gt;
 	ShowInHyperspace = true,&lt;br /&gt;
 &lt;br /&gt;
 	-- Called once per frame while the module is active. The function is passed&lt;br /&gt;
 	-- the module object (this table) and the frame delta time&lt;br /&gt;
 	draw = function(self, deltaTime)&lt;br /&gt;
 		-- ui.window takes three parameters: the window title, the window flags,&lt;br /&gt;
 		-- and a function containing the body of the window.&lt;br /&gt;
 &lt;br /&gt;
 		-- the window title is an IMGUI string ID - two windows cannot share&lt;br /&gt;
 		-- the same ID at the same stack position. To work around this,&lt;br /&gt;
 		-- everything after ## is not part of the title, but instead used to&lt;br /&gt;
 		-- make the window ID unique.&lt;br /&gt;
 		ui.window(&amp;quot;Debug!##id43&amp;quot;, window_flags, function()&lt;br /&gt;
 			ui.text(&amp;quot;State: &amp;quot; .. Game.player:GetFlightState())&lt;br /&gt;
 &lt;br /&gt;
 			if (ui.beginTabBar(&amp;quot;mytabbar&amp;quot;)) then&lt;br /&gt;
 				if ui.beginTabItem(&amp;quot;squares&amp;quot;) then&lt;br /&gt;
 					ui.text(&amp;quot;test1&amp;quot;)&lt;br /&gt;
 					ui.endTabItem()&lt;br /&gt;
 				end&lt;br /&gt;
 				if ui.beginTabItem(&amp;quot;BALLS!&amp;quot;) then&lt;br /&gt;
 					ui.text(&amp;quot;test2&amp;quot;)&lt;br /&gt;
 					ui.endTabItem()&lt;br /&gt;
 				end&lt;br /&gt;
 				if ui.beginTabItem(&amp;quot;Triangle&amp;quot;) then&lt;br /&gt;
 					ui.text(&amp;quot;test3&amp;quot;)&lt;br /&gt;
 					ui.text(&amp;quot;some more text&amp;quot;)&lt;br /&gt;
 					ui.endTabItem()&lt;br /&gt;
 				end&lt;br /&gt;
 				ui.endTabBar()&lt;br /&gt;
 			end&lt;br /&gt;
 &lt;br /&gt;
 			-- Give player mone if pressing the button&lt;br /&gt;
 			if ui.button(&amp;quot;Give money&amp;quot;, Vector2(100, 0)) then&lt;br /&gt;
 				Game.player:AddMoney(amount)&lt;br /&gt;
 			end&lt;br /&gt;
 &lt;br /&gt;
 			-- draws a horizontal line&lt;br /&gt;
 			ui.separator()&lt;br /&gt;
 &lt;br /&gt;
 			-- Reputation &amp;amp; kills&lt;br /&gt;
 			if ui.collapsingHeader(&amp;quot;Reputation &amp;amp; kills&amp;quot;, {}) then&lt;br /&gt;
 				Character.persistent.player.reputation = ui.sliderInt(&amp;quot;Reputation&amp;quot;, Character.persistent.player.reputation, 0, 512)&lt;br /&gt;
 				ui.sameLine()&lt;br /&gt;
 				ui.text(Character.persistent.player:GetReputationRating())&lt;br /&gt;
 &lt;br /&gt;
 				Character.persistent.player.killcount = ui.sliderInt(&amp;quot;Kills&amp;quot;, Character.persistent.player.killcount, 0, 6000)&lt;br /&gt;
 				ui.sameLine()&lt;br /&gt;
 				ui.text(Character.persistent.player:GetCombatRating())&lt;br /&gt;
 			end&lt;br /&gt;
 &lt;br /&gt;
 		end)&lt;br /&gt;
 	end&lt;br /&gt;
 })&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=FAQ&amp;diff=4564</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=FAQ&amp;diff=4564"/>
		<updated>2024-07-05T10:03:11Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: /* Gameplay */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Frequently Asked Questions =&lt;br /&gt;
&lt;br /&gt;
== About the Game ==&lt;br /&gt;
&lt;br /&gt;
=== What is Pioneer? ===&lt;br /&gt;
&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;
&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 follows this same path.&lt;br /&gt;
&lt;br /&gt;
=== Can I play multiplayer online? ===&lt;br /&gt;
&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. See for instance [[Network_features|Network features]], and [[ServerAgent|ServerAgent]] for more, or our dev forum [https://forum.pioneerspacesim.net/viewtopic.php?f=3&amp;amp;t=216 here]. Pioneer will never have multiple players in different ships, as this is incompatible with time acceleration feature. For comparison: the Elite Dangerous dev-team chose to prioritize multiplayer over Newtonian mechanics, and make it more like the original Elite, we choose to stay true to the core concepts of Frontier Elite II, which is Newtonian mechanics, with time acceleration.&lt;br /&gt;
&lt;br /&gt;
=== Can I colonize planets, build space stations or conquer the universe? ===&lt;br /&gt;
&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;
&lt;br /&gt;
No, you cannot exit your ship. The ship is always your avatar. The development team does have [https://forum.pioneerspacesim.net/viewtopic.php?f=3&amp;amp;t=454 aspirations] to push in this direction, for future versions.&lt;br /&gt;
&lt;br /&gt;
=== Is the universe pre-defined or randomly generated? ===&lt;br /&gt;
&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;
&lt;br /&gt;
Yes. You can hire crew. But they don't do very much at the moment.&lt;br /&gt;
&lt;br /&gt;
=== Are savegames compatible between releases? ===&lt;br /&gt;
&lt;br /&gt;
The development of the game can happen in sudden bursts, some of which change the game universe, or save/load routine, such that old saves are blocked from loading, lest the game might crash. The player can start a new game, and &amp;quot;give&amp;quot; themselves back money, kills, reputation, ship, as it was in the old save, by using the [[Lua_Console|lua console]]. You probably want to keep a copy of your old Pioneer, to read off your player statistics, write them down, then download and open the latest Pioneer version, and give yourself those stats. Note: it's only cheating if you give yourself back more than you had, remember: God is watching over your shoulder!&lt;br /&gt;
&lt;br /&gt;
=== Are savegames compatible between Mods? ===&lt;br /&gt;
&lt;br /&gt;
Again as with savegames between different versions of pioneer, compatibility between mods can not be guaranteed. It all depends on what mods you have installed.&lt;br /&gt;
&lt;br /&gt;
=== Where is star system X from Frontier? Can I buy ship Y? ===&lt;br /&gt;
&lt;br /&gt;
Although Pioneer started out as a clone of Frontier, it no longer is, thus references to the Frontier universe have been removed, and we aim at making Pioneer far better than Frontier. Thus, you will have to figure out new trade routes! But don't worry, Newtonian physics will remain, as well as single player.&lt;br /&gt;
&lt;br /&gt;
=== Can I build and control a fleet, or a factory, or run/own a station? ===&lt;br /&gt;
&lt;br /&gt;
No, this is not on the agenda, and none of the developers are motivated to push for this, but who knows, perhaps in the future, some skilled developer, who knows how to implement this in a way that makes game play interesting, joins the dev-team. However, we are currently planning to have mining machines (like in Frontier Elite II), and ship system management (heat, energy, repair components, etc.) on the agenda.&lt;br /&gt;
&lt;br /&gt;
== Gameplay ==&lt;br /&gt;
&lt;br /&gt;
=== How do I take screenshots? ===&lt;br /&gt;
&lt;br /&gt;
Ctrl+Printscreen saves .png files in the same directory where the game .ini and savegames are. You can cycle through full HUD/HUD without labels and cursor/No HUD and cockpit using TAB as described in [http://pioneerwiki.com/wiki/Keyboard_and_mouse_controls#In_flight [1]].&lt;br /&gt;
&lt;br /&gt;
=== How do I record a video? ===&lt;br /&gt;
To record video directly from Pioneer you will need to add the line RecordVideo=1 somewhere within your config.ini file. Then once ingame you can press Ctrl+ScrLk to start or stop recording.&lt;br /&gt;
&lt;br /&gt;
=== How do I find star X in the star map ===&lt;br /&gt;
&lt;br /&gt;
First it is important to note that just like in real life, names are not unique. The star map allows the player to search for either name or coordinates of a system. The search is done in the local region of the currently selected system.&lt;br /&gt;
&lt;br /&gt;
Thus a standard way of finding a system is to type in the name in the search field in the star map (generally refereed to as &amp;quot;sector view&amp;quot;). If you know the system is within a few ly from your position, then have your current location selected when you do the search, since it only does a &amp;quot;local&amp;quot; search in space. If the search fails, go to the sector where the star is supposed to be, either by typing the coordinates into the search field, or by using arrows, mark a nearby star in that system, and do another search. You can scroll the star map super fast by holding in the Shift key.&lt;br /&gt;
&lt;br /&gt;
=== I have a Taxi mission to system X, but which starport? ===&lt;br /&gt;
&lt;br /&gt;
For Taxi missions any starport will do, as long as you dock before the deadline.&lt;br /&gt;
&lt;br /&gt;
=== Starsystem names are not unique ===&lt;br /&gt;
&lt;br /&gt;
This is not a bug, space is big, and just here on Earth it is quite common with cities and villages sharing the same name, sometimes quite close.&lt;br /&gt;
&lt;br /&gt;
=== I picked up a mission to a starport in a system, but when I search for the system, it seems that it doesn't have the destination starport, or even uninhabited. ===&lt;br /&gt;
&lt;br /&gt;
As mentioned above, there could be multiple systems with the same name. Each mission states the coordinates (Sirius (1,0,-1) for example) of the destination system, and you can enter them into the search field on the sector map, to find the correct system.&lt;br /&gt;
&lt;br /&gt;
=== I end up &amp;quot;a big number&amp;quot; AU away from the star when I hyper jump to a system ===&lt;br /&gt;
&lt;br /&gt;
This happens in binary star systems. You can select the star you want to jump to from the [[Manual#System_info|System View]].&lt;br /&gt;
&lt;br /&gt;
=== Map survey / scan mission does not progress ===&lt;br /&gt;
Make sure: &lt;br /&gt;
* if you have an orbit scan mission, you need an orbit scanner, and if you have a surface scan mission you need a surface scanner. &lt;br /&gt;
* Also make sure you're flying above the minimum altitude, and below the max. &lt;br /&gt;
* Also make sure you're in the right system (both coordinates and name must match), and at the right body.&lt;br /&gt;
&lt;br /&gt;
=== Major/Minor Import/Export is wrong ===&lt;br /&gt;
There are two levels: system and station. A system can be an importer of X, but a station in that system can be an exporter of X relative the system as a whole, meaning the import/export of a specific station is relative to the import/export price of the system as a whole.&lt;br /&gt;
&lt;br /&gt;
== Technical FAQ ==&lt;br /&gt;
&lt;br /&gt;
=== What is the system requirement for runing the game? ===&lt;br /&gt;
&lt;br /&gt;
Current &amp;quot;stable&amp;quot; (if indeed we have one) [https://pioneerspacesim.net/page/download/ release] is 2021-02-03, and is built on Ubuntu 20.04 Linux machine and a Windows machine, and requires OpenGL 3.2 compatible hardware.&lt;br /&gt;
We also offer a [https://flathub.org/apps/details/net.pioneerspacesim.Pioneer flatpak] script. If you want to compile the game, then please install requirements listed in [https://github.com/pioneerspacesim/pioneer/blob/master/COMPILING.txt COMPILING.txt]&lt;br /&gt;
&lt;br /&gt;
=== Installing the game ===&lt;br /&gt;
&lt;br /&gt;
The releases are made when developers feel it's been &amp;quot;a while&amp;quot;, relative to the number of new additions that have been added that they want players to enjoy / playtest. Releases for Windows and GNU/Linux are now (2021) found on the [https://github.com/pioneerspacesim/pioneer/releases github releases page], and Linux versions are currently built on a [https://github.com/pioneerspacesim/pioneer/blob/master/.github/workflows/build-ci.yml Ubuntu 20.04] (virtual) machine, thus that system should not have any compatibility issues.&lt;br /&gt;
&lt;br /&gt;
==== Build from source ====&lt;br /&gt;
&lt;br /&gt;
The best way to ensure your pioneer is compatible with you Linux system, and of latest, &amp;quot;bleeding edge&amp;quot;, version is to install from source. This is described in [https://github.com/pioneerspacesim/pioneer/blob/master/COMPILING.txt COMPILING.txt]. Playing this way is also the best way you can help the developers, i.e. find and report the latest bugs you encounter.&lt;br /&gt;
&lt;br /&gt;
==== Installing using flatpak ==== &lt;br /&gt;
If you're having trouble getting pioneer to run on your Linux distribution, and you do not want to build from source, then we recommend [https://flathub.org/apps/details/net.pioneerspacesim.Pioneer flatpak] that resolves dependencies for you. Follow [https://flatpak.org/setup/ this] on how to use it, if need be. E.g. on Linux Mint these images are already [https://flatpak.org/setup/Linux%20Mint included] by default in their app store. On other distributions it is at most needed to install flatpak and then issue, from a terminal:&lt;br /&gt;
&lt;br /&gt;
  flatpak install net.pioneerspacesim.Pioneer&lt;br /&gt;
&lt;br /&gt;
==== Error loading shared libraries (e.g.libassimp.so.&amp;lt;x&amp;gt;) ====&lt;br /&gt;
&lt;br /&gt;
The linux version of Pioneer is build on a Ubuntu 20 machine. Currenlty (2021-05), this can cause some debian machines, that have an older verison of libassimp, to throw an error, e.g.:&lt;br /&gt;
&lt;br /&gt;
    error while loading shared libraries: libassimp.so.5:&lt;br /&gt;
    cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
This is fixed either by building pioneer from source, against the shared libraries that are on your particular machine (then you get an even more updated &amp;quot;bleeding edge&amp;quot; build of pioneer!), or install the correct version of the package that is missing: https://packages.debian.org/unstable/libassimp5 (or try to find an older release)&lt;br /&gt;
&lt;br /&gt;
==== Where is the Mac version? ====&lt;br /&gt;
&lt;br /&gt;
Pioneer's development team is mainly on Linux and Windows, and does currently not have the ability to build and maintain a Mac version. To build a Mac release we actually need access to a Mac machine, which, unfortunately, none of the developers currently have. If you have a Mac which can compile and upload pioneer for us on a regular basis, then please contact us (IRC).&lt;br /&gt;
&lt;br /&gt;
Update: OSX builds have been discontinued due to lack of maintainer and Apple's deprecation of OpenGL. We do not intend to offer them in the near future - we will need to migrate the rendering path to Vulkan and have enough of a user base to warrant spending time on OSX compatibility.&lt;br /&gt;
&lt;br /&gt;
==== Where do I find nightly builds of Pioneer ====&lt;br /&gt;
&lt;br /&gt;
They're available on github [https://github.com/pioneerspacesim/pioneer/actions?query=workflow%3A%22Build+Pioneer%22+branch%3Amaster actions page]. Note: thuis currently requires [https://github.com/actions/upload-artifact/issues/51 login to github] to download. A new build is made each time a pull request is merged with new code, and also each proposed pull request is built, which is a great way to test features prior to them being merged into the master branch.&lt;br /&gt;
&lt;br /&gt;
==== Where do I find older versions of Pioneer ====&lt;br /&gt;
&lt;br /&gt;
You can find older versions starting from December 2014 (2014-12-05) on our [http://sourceforge.net/projects/pioneerspacesim/files sourceforge] page. 2014-11-18 was the last version supporting OpenGL 2, between 2014-11-19 to 2014-12-07 Pioneer required OpenGL 3.2. From 2014-12-08 only OpenGL 3.1 is required. Over at [http://www.moddb.com/games/pioneer/downloads moddb] they have windows version going further back in time.&lt;br /&gt;
&lt;br /&gt;
==== How do I play on old computer ====&lt;br /&gt;
&lt;br /&gt;
Your best bet is to use an older version, or if you have another computer you can use virtualGL to let pioneer run on a remote (modern) machine and forward it to an older machine, as described on the [https://spacesimcentral.com/community/pioneer/a-request-for-instrumental-pioneer/ forum], this command works best (but combat/action is too laggy, so it is only a viable solution for playing peaceful missions):&lt;br /&gt;
&lt;br /&gt;
  vglconnect user@server_executing_pioneer_ip -CY -p SSH_port 'cd /path_of_pioneer_compilation_folderme/ &amp;amp;&amp;amp; ./pioneer'&lt;br /&gt;
&lt;br /&gt;
=== How/where do I report my bug/crash ===&lt;br /&gt;
&lt;br /&gt;
Bug reporting is the most important part where you as a player can help the community. When you encounter something that seems strange or odd in the game, please report it, preferably to our [https://github.com/pioneerspacesim/pioneer/issues issue tracker], but you can also stop by the [[IRC|IRC channel]]. When you report it, always mention pioneer verision (shown in lower right hand corner in the starting screen [https://user-images.githubusercontent.com/18342621/118388006-6ee03080-b62a-11eb-8d48-bf66f0820d5f.png png])&lt;br /&gt;
&lt;br /&gt;
When having problems with graphics, or pioneer not starting/crashing, please attach the files '''output.txt''' and '''opengl.txt''' from the pioneer [http://pioneerwiki.com/wiki/FAQ#Where_is_the_configuration_file.2C_saved_games.2C_screenshots.3F config folder] in your home folder / My Documents folder. If you didn't get the '''output.txt''' file, then make sure '''RedirectStdio=1''' in '''config.ini'''.&lt;br /&gt;
&lt;br /&gt;
It is important to include as much of the following information as possible in each issue report, much of this is available to use from the '''output.txt''' and '''opengl.txt''' but if you cannot attach them then please tell us:&lt;br /&gt;
&lt;br /&gt;
*The version of pioneer you are trying to run (''build date or ingame version number'') &lt;br /&gt;
*What operating system you are running, Windows XP/Vista/7/8/10, Linux (''what distribution''), OSX. &lt;br /&gt;
*Your computers system specifications - CPU / RAM / Graphics card. &lt;br /&gt;
*Whether you have downloaded it from our site, or if you are building it from the source code.&lt;br /&gt;
&lt;br /&gt;
=== Debug backtrace ===&lt;br /&gt;
When the game crashes, one of most valuable pieces of information you can provide the development team, is a backtrace. To get a backtrace, the game must have been compiled in debug mode, and then started through a debugger. If you compile the game yourself, from source, it will by default build a debug mode.&lt;br /&gt;
&lt;br /&gt;
==== Windows Visual Studio ====&lt;br /&gt;
&lt;br /&gt;
* Compile the game in debug mode (should be the default setting). &lt;br /&gt;
* After building it, press F5 or go to Debug-&amp;gt;Start Debugging. Note: it will run slowly, starting a new game or loading a new one in particular. That's normal.&lt;br /&gt;
* Instead of a full out crash, you'll get a freeze and it should automatically switch back to Visual Studio. If it freezes and doesn't switch back, do that manually.&lt;br /&gt;
* At that point, Visual Studio should have opened a couple new panes/sub windows at the bottom. One of these is 'Call Stack.' Right click in it, select 'Select All.' Then right click in there again and select 'Copy with source paths.'&lt;br /&gt;
* Then paste that information into the bug-report (preferably as a [https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet code formatted block])&lt;br /&gt;
* After that you can Debug-&amp;gt;Stop to shut down Pioneer again.&lt;br /&gt;
&lt;br /&gt;
==== Linux gdb ====&lt;br /&gt;
* Make sure gdb (The GNU Debugger) is installed on you system (available in package managers of all Linux distributions).&lt;br /&gt;
* Then start pioneer by prefixing the command with gdb followed by the normal command to start pioneer. Eg. if you normally do:&lt;br /&gt;
&lt;br /&gt;
  cd pioneer/&lt;br /&gt;
  ./build/pioneer&lt;br /&gt;
&lt;br /&gt;
then to run in debug mode, you need to run it through gdb:&lt;br /&gt;
&lt;br /&gt;
  cd pioneer/&lt;br /&gt;
  gdb ./build/pioneer&lt;br /&gt;
&lt;br /&gt;
then from inside gdb, type &amp;quot;run&amp;quot;, which starts pioneer. Play until you get the crash, which drops you out to gdb again. Type 'bt' or 'backtrace' in the gdb command line, and save the output to you bug-report.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Where is the configuration file, saved games, screenshots? ===&lt;br /&gt;
&lt;br /&gt;
*Windows: My Documents\Pioneer &lt;br /&gt;
*OS X: /Users/your_username/Library/Application Support/Pioneer &lt;br /&gt;
*Linux: /home/your_username/.pioneer &lt;br /&gt;
&lt;br /&gt;
=== New pioneer version doesn't start ===&lt;br /&gt;
This could be because new configuration is incompatible with the local, try remmoving your pioneer configuration folder, such that the game will auto-generate new configuration file anew. &lt;br /&gt;
&lt;br /&gt;
=== I'm getting graphical issues ===&lt;br /&gt;
&lt;br /&gt;
Such as wrong textures, ships missing from the view, text display glitches. '''Updating the display drivers usually solve these problems.'''&lt;br /&gt;
&lt;br /&gt;
These usually occur on older graphics adapters, or because of outdated GPU drivers. Not too old NVidia and ATI cards are usually enough to play the game, but integrated GPUs are usually not enough.&lt;br /&gt;
&lt;br /&gt;
=== I'm getting graphical issues, such as snow-like sky and transparent terrain ===&lt;br /&gt;
&lt;br /&gt;
This is probably caused by the eclipse shader which isn't supported by some open source graphic drivers. You could install the proprietary drivers, if available, or disable the eclipse effect by adding DisableEclipse=1 to your pioneer configuration file (config.ini).&lt;br /&gt;
&lt;br /&gt;
=== My OpenGL Version is below 3.2, &amp;quot;Pioneer cannot run on your graphics card&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
UPDATE: Pioneer dropped 2.1 support in September, 2018. You need to checkout and compile a version prior to this, and do:&lt;br /&gt;
&lt;br /&gt;
Open your pioneer configuration file, and set: &amp;quot;RendererName=Opengl 2.1&amp;quot;. This should allow pioneer to run, provided your hardware supports OpenGL 2.1, which it should if you were able to run Pioneer up until 2014-11-18 when support was dropped. Note, support for multiple renderers was added 2017-03-03, i.e. both OpenGL 2.1 and 3.1; however, you need to edit your configuration file to select the proper one, as no auto-detection is done. Actually, if your hardware isn't extraordinarily old, OpenGL 3.2 should be supported if you update your drivers.&lt;br /&gt;
&lt;br /&gt;
You can also find older versions (pre 20141119) on [http://www.moddb.com/games/pioneer/downloads moddb].&lt;br /&gt;
&lt;br /&gt;
=== I see blank untextured Gas Giants and I'm using an ATI graphic card under GNU/Linux with open source drivers (Mesa R600) ===&lt;br /&gt;
&lt;br /&gt;
With chipsets using the R600 gallium drivers the shader fails to compile. There is a workaround that uses less noise octaves. This produces less detailed texture maps for the gas/ice giants but they still look good and at least the program runs.&lt;br /&gt;
&lt;br /&gt;
Try setting &amp;lt;code&amp;gt;AMD_MESA_HACKS=1&amp;lt;/code&amp;gt; in ~/.pioneer/config.ini or disable GPU jobs entirely by setting &amp;lt;code&amp;gt;EnableGpujobs=0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== I'm getting text rendering artefacts ===&lt;br /&gt;
&lt;br /&gt;
Some system monitoring HUD utilities, like MSI Afterburner, and Steam overlay&amp;amp;nbsp;can cause distorted text rendering. Try switching them off.&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== The game freezes at the intro screen ===&lt;br /&gt;
&lt;br /&gt;
If you cannot start the game at all, edit the configuration file and change value DisableShaders to 1.&lt;br /&gt;
&lt;br /&gt;
=== The game crashes on start with an error message about imgui_draw.cpp ===&lt;br /&gt;
&lt;br /&gt;
Check if any parent folder of Pioneer has any accented letters (e.g éáűúóü etc.). If so, copy the game to somewhere, where there's none of these in the folder tree.&lt;br /&gt;
&lt;br /&gt;
=== The game crashes after the loading screen. I'm using ATI free drivers on GNU/Linux. ===&lt;br /&gt;
&lt;br /&gt;
If you are getting a GL_INVALID_ENUM in console, could be because some ships uses textures in a format that, because of patents, is not included in the main mesa package. Search for libtxc-dxtn or libtxc_dxtn in your distribution and install it.&lt;br /&gt;
&lt;br /&gt;
=== The game hangs when I turn on the ''Enable Cockpit (EXPERIMENTAL)'' option ===&lt;br /&gt;
&lt;br /&gt;
It's because it's an experimental feature right now, infrastructure mostly. You need a cockpit model for to be able to use it.&lt;br /&gt;
&lt;br /&gt;
You can find one heavily WIP one posted on the Community Forums. Note that it's a highly experimental feature right no, so please treat it accordingly.&lt;br /&gt;
&lt;br /&gt;
=== My joystick is &amp;quot;drifting&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
It's recommended that you calibrate your joystick using the OS facilities (Joystick Settings on Windows, jstest-gtk on linux) as this fixes 99% of all issues with incorrectly configured joysticks. However, if you want to adjust specific parameters for each joystick axis, support for customizable deadzone and sensitivity is available through the configuration file. Open config.ini and adjust the deadzone (DZ) and sensitivity exponent curve (CV) values of the corresponding axis to your liking.&lt;br /&gt;
&lt;br /&gt;
 ; example joystick configuration&lt;br /&gt;
 [Joystick.03000000a30600006404000000010000]&lt;br /&gt;
 Axis0=DZ0.0 CV1.0&lt;br /&gt;
 Axis1=DZ0.0 CV1.0&lt;br /&gt;
 Axis2=DZ0.0 CV1.0&lt;br /&gt;
 Axis3=DZ0.0 CV1.0&lt;br /&gt;
 Name=Saitek Cyborg USB Stick&lt;br /&gt;
&lt;br /&gt;
=== I'm getting poor performance ===&lt;br /&gt;
&lt;br /&gt;
The heaviest part of the game is planetary terrain generation. Turn down the &amp;quot;Detail distance&amp;quot; and &amp;quot;Fractal detail&amp;quot; settings, they have the most impact for performance. Reducing screen resolution is also recommended, this can be done in the [[Settings_Menu|Settings Menu]], or manually to a custom values by editing your personal configuration file, on Linux: &amp;lt;code&amp;gt;~/.pioneer/config.ini&amp;lt;/code&amp;gt;. On Windows: &amp;lt;code&amp;gt;Documents/pioneer/config.ini&amp;lt;/code&amp;gt; Look for &amp;lt;code&amp;gt;ScrHeight&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ScrWidth&amp;lt;/code&amp;gt; entries. Also consider reducing number of buildings in cities.&lt;br /&gt;
&lt;br /&gt;
=== I've enabled anti-aliasing in the config file, but it does not work ===&lt;br /&gt;
&lt;br /&gt;
Make sure the AA settings are not overridden by your graphics card settings, on NVidia AA should be set to &amp;quot;application controlled&amp;quot; mode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Full screen mode is incorrectly scaled ===&lt;br /&gt;
&lt;br /&gt;
If you are on Windows, try:&lt;br /&gt;
&amp;lt;pre&amp;gt;Sounds like windows 7 desktop-scaling issues.&lt;br /&gt;
Try adding some compatability modes to the Pioneer.exe.&lt;br /&gt;
Right click it and Choose properties -&amp;gt; Compatability -&amp;gt; Tick&lt;br /&gt;
Disable desktop scaling, and Disable desktop composition.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
=== What's the history of Pioneer ===&lt;br /&gt;
&lt;br /&gt;
The project started in 2008 by Tom Morton, and was [https://web.archive.org/web/20150326115725/http://spacesimcentral.com/ssc/topic/742-pioneer-new-gpl-frontier-elite-2-style-game/ announced in 2010] on the Space Sim Central forum (for space games), and on [https://forums.frontier.co.uk/threads/the-pioneer-thread.1596/ frontier forum]. For more history, see [http://www.rockpapershotgun.com/2011/12/06/back-to-frontier-pioneer/ Rock Paper Shotgun article], and [[Media_Coverage]]&lt;br /&gt;
&lt;br /&gt;
=== How much development is being made? ===&lt;br /&gt;
&lt;br /&gt;
Development is sporadic, but no month goes by without some change to the source, fixing bugs, cleaning up code, introducing new content and/or features; see [https://github.com/pioneerspacesim/pioneer/blob/master/Changelog.txt Changelog.txt]. All contributors work on pioneer for free when they have time and motivation.&lt;br /&gt;
&lt;br /&gt;
=== What's the deal with the inconsistent UI interface? ===&lt;br /&gt;
Basically, Pioneer has during the 2013-2020s had up to three different, simulteneous, UI systems, for a background and screen shots, please refer to:&lt;br /&gt;
[[GUI_introduction#Background_history]]&lt;br /&gt;
&lt;br /&gt;
=== Do you accept contributions? ===&lt;br /&gt;
&lt;br /&gt;
Hell yes! Pioneer is not any one persons personal project. It is the sum of the contributions made by the people who play and care about the continued development of the game. See: [[How_you_can_contribute|How to contribute]].&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Media_Coverage&amp;diff=4563</id>
		<title>Media Coverage</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Media_Coverage&amp;diff=4563"/>
		<updated>2024-07-04T08:55:02Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: &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;
* [https://web.archive.org/web/20130414025156/http://www.cnet.com.au/amazing-dad-builds-his-son-a-spaceship-simulator-339343918.htm CNET Australia] article about a &amp;quot;real&amp;quot; space ship simulator than runs Pioneer.&lt;br /&gt;
* [http://www.bbc.co.uk/news/technology-20165344 BBC] article about funding for the new Elite game mentions Pioneer in a list of alternatives.&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.pcgamer.com/2014/01/01/ten-top-fan-remade-classics-you-can-play-for-free-right-now/ PC Gamer] include Pioneer in their list of top game remakes.&lt;br /&gt;
* [http://www.lgdb.org/game/pioneer Linux Game Data Base]&lt;br /&gt;
* [http://www.penguspy.com/pioneer/ Pengu spy]&lt;br /&gt;
* [http://alternativeto.net/software/pioneer---space-sim/ alternativeTo]&lt;br /&gt;
* [http://derstandard.at/2000011074333/Lieblingsspiele-neugemacht-Die-bewundernswerte-Kunst-der-Fan-Remakes DerStandard.at]&lt;br /&gt;
* [https://www.youtube.com/watch?v=pK3FEiNiKOk Youtube - Pioneer Space Sim - Frontier Remake] By Scott Manley.&lt;br /&gt;
* [https://www.youtube.com/watch?v=27rbqsvd2UE Youtube - Review: Pioneer Space Simulation Gameplay] By BlackMaze.&lt;br /&gt;
* [https://www.youtube.com/playlist?list=PLRNUEKviDIzHqRQUQfYHnZquHT3_cpXG6 Youtube - Let's Play: &amp;quot;Pioneer: Frequently Failing&amp;quot;] by BlueZedPS&lt;br /&gt;
* [https://news.ycombinator.com/item?id=15875695 Hacker News mentioning]&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Media_Coverage&amp;diff=4562</id>
		<title>Media Coverage</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Media_Coverage&amp;diff=4562"/>
		<updated>2024-07-04T08:54:21Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: adding youtuber's playlist playing pioneer&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;
* [https://web.archive.org/web/20130414025156/http://www.cnet.com.au/amazing-dad-builds-his-son-a-spaceship-simulator-339343918.htm CNET Australia] article about a &amp;quot;real&amp;quot; space ship simulator than runs Pioneer.&lt;br /&gt;
* [http://www.bbc.co.uk/news/technology-20165344 BBC] article about funding for the new Elite game mentions Pioneer in a list of alternatives.&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.pcgamer.com/2014/01/01/ten-top-fan-remade-classics-you-can-play-for-free-right-now/ PC Gamer] include Pioneer in their list of top game remakes.&lt;br /&gt;
* [http://www.lgdb.org/game/pioneer Linux Game Data Base]&lt;br /&gt;
* [http://www.penguspy.com/pioneer/ Pengu spy]&lt;br /&gt;
* [http://alternativeto.net/software/pioneer---space-sim/ alternativeTo]&lt;br /&gt;
* [http://derstandard.at/2000011074333/Lieblingsspiele-neugemacht-Die-bewundernswerte-Kunst-der-Fan-Remakes DerStandard.at]&lt;br /&gt;
* [https://www.youtube.com/watch?v=pK3FEiNiKOk Youtube - Pioneer Space Sim - Frontier Remake] By Scott Manley.&lt;br /&gt;
* [https://www.youtube.com/watch?v=27rbqsvd2UE Youtube - Review: Pioneer Space Simulation Gameplay] By BlackMaze.&lt;br /&gt;
* [https://www.youtube.com/playlist?list=PLRNUEKviDIzHqRQUQfYHnZquHT3_cpXG6] Let's Play: &amp;quot;Pioneer: Frequently Failing&amp;quot; by BlueZedPS&lt;br /&gt;
* [https://news.ycombinator.com/item?id=15875695 Hacker News mentioning]&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Translations&amp;diff=4561</id>
		<title>Translations</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Translations&amp;diff=4561"/>
		<updated>2024-06-30T17:13:18Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All text in Pioneer is translatable, and the game ships with several translations. Here's everything you need to know.&lt;br /&gt;
&lt;br /&gt;
== For translators ==&lt;br /&gt;
&lt;br /&gt;
All our translations are managed through [http://transifex.com Transifex], a free web-based translation service. To start writing translations, sign up there, using [https://www.transifex.com/signup/open-source/?join_project=pioneer this link], and then take a look at the [https://www.transifex.com/projects/p/pioneer/ Pioneer project]. You can either use the web-interface, or download the full file, and edit off line, and then re-upload.&lt;br /&gt;
&lt;br /&gt;
Changes to translations are automatically pulled into the master git repo, from transifex, twice per day, and from there to the builds when they're next run.&lt;br /&gt;
&lt;br /&gt;
In Transifex you can subscribe to notifications for the languages or resources you're interested in. When new strings are added or modified, you'll be notified.&lt;br /&gt;
&lt;br /&gt;
If you want to translate Pioneer to an entirely new language, please [https://github.com/pioneerspacesim/pioneer/issues open an issue] on the tracker and someone will create the translation for you.&lt;br /&gt;
&lt;br /&gt;
English is the canonical language for Pioneer. As such, you can't directly modify the english strings through Transifex. If you want to change those, you'll need to make the change in source code hosted in git and submit a pull request like for a normal code change. However, do note that changes in english text will trigger re-translation of that string in all other languages, thus there should be a good motivation why a string is changes (e.g. spelling/grammar).&lt;br /&gt;
&lt;br /&gt;
Untranslated strings will use the value from the English version.&lt;br /&gt;
&lt;br /&gt;
You can leave comments in Transifex to help out other translators. You'll also see any notes left by the developers to help you translate a particular string.&lt;br /&gt;
&lt;br /&gt;
If you're a new translator and you'd like your name included in AUTHORS.txt, please let us know!&lt;br /&gt;
&lt;br /&gt;
For when you translate: Text within curly brace denote a varialbe name that will be substituted and should not be translated, e.g. &lt;br /&gt;
&lt;br /&gt;
    &amp;quot;Welcome to {system}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== For mod developers ==&lt;br /&gt;
&lt;br /&gt;
Each module gets its own translation resource, called &amp;lt;tt&amp;gt;module-foo&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To get at the strings for your module, do something like:&lt;br /&gt;
&lt;br /&gt;
    local Lang = import(&amp;quot;Lang&amp;quot;)&lt;br /&gt;
    local l = Lang.GetResource(&amp;quot;module-foo&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Then you can get at the string by its token:&lt;br /&gt;
&lt;br /&gt;
    print(l.SOME_TRANSLATED_STRING)&lt;br /&gt;
&lt;br /&gt;
While its possible to load multiple translation resources to share strings, its highly recommended that you don't do that. Stick to your own strings so that you don't have to track changes in other modules. Duplicates across resources are fine. Note that code that uses multiple resources won't be accepted into the main Pioneer repository unless you've checked it with a core developer first and it has a good reason.&lt;br /&gt;
&lt;br /&gt;
Translations are [https://developer.chrome.com/extensions/i18n.html &amp;lt;tt&amp;gt;chrome.i18n&amp;lt;/tt&amp;gt; JSON] files. The format is fairly simple - a JSON object with tokens as keys and values of an object with two keys, &amp;lt;tt&amp;gt;message&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;description&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;message&amp;lt;/tt&amp;gt; is the text that will appear in the game, while &amp;lt;tt&amp;gt;description&amp;lt;/tt&amp;gt; provides instructions for the translator that will be displayed in Transifex. [https://www.json.org/img/string.png Here] is a useful chart showing how characters are interpreted.&lt;br /&gt;
&lt;br /&gt;
If you're submitting code that requires a new language you should only include &amp;lt;tt&amp;gt;en.json&amp;lt;/tt&amp;gt;. Please tag '''@impaktor''' in your pull request so they can create a new resource in Transifex and make sure a language update is done at merge. If you don't do this then you'll break the game for non-English users.&lt;br /&gt;
&lt;br /&gt;
== For core developers ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;core&amp;lt;/tt&amp;gt; resource is magical. If you add a string to it, you also need to add it to &amp;lt;tt&amp;gt;LangStrings.inc.h&amp;lt;/tt&amp;gt; and recompile. It will then be available as &amp;lt;tt&amp;gt;Lang::SOME_TRANSLATED_STRING&amp;lt;/tt&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Custom_Systems&amp;diff=4551</id>
		<title>Custom Systems</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Custom_Systems&amp;diff=4551"/>
		<updated>2024-02-03T11:36:15Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: /* Running the Editor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Pioneer defines systems in JSON format (as of 2024, definitions in Lua are deprecated), edited using the editor provided with the game. Youtube-demonstration [https://www.youtube.com/watch?v=ZvwtlQa93zk here]. The goal of the editor is to make contributing custom systems as easy as possible, so Pioneer can have more custom systems. Ideally, all core systems should be custom made.&lt;br /&gt;
&lt;br /&gt;
== Design philosophy ==&lt;br /&gt;
&lt;br /&gt;
A designed system can always be shared with the community (e.g. [http://spacesimcentral.com/community/pioneer/ SpaceSimCentral]) for feedback, but of course it is much more rewarding to see your custom designed system included in the game, and this is one of the easiest contributions you can make, and also easy for maintaners to test and merge. &lt;br /&gt;
&lt;br /&gt;
Please load current custom systems as guide for the style we want for inclusion in master branch, but in short:&lt;br /&gt;
* Do not infringe on trademarks: no Star Wars, Star Trek, Elite/Frontier, Nintendo, references&lt;br /&gt;
* No aliens please. There can be alien life forms, like fauna, animals, but in general, we do not want &amp;quot;grays&amp;quot;, or &amp;quot;E.T.&amp;quot;. However, there can be tasteful hints to mysteries in system description, e.g. think of the writings of Arthur C. Clarke.&lt;br /&gt;
* If you include some history of the system in the description, then make sure it fits with the lore/time line of [[Pioneer_Universe]]. &lt;br /&gt;
* No &amp;quot;non-physical&amp;quot; systems: meaning, all systems should be &amp;quot;sane&amp;quot;, from an astronomical stand point.&lt;br /&gt;
* If your system is an existing star, model it as closely as possible to real astronomical data, e.g. star size, temperature, color, does it have known exo-plantes? Does it have multiple names, e.g. propper name, and star catalouge name? If so, use  &amp;lt;tt&amp;gt;other_names()&amp;lt;/tt&amp;gt; property to overload it (e.g. see source for wolf_359-system for code example)&lt;br /&gt;
* In general: consider space is a vast black void of nothingness, and Pioneer is a game of lonely space adventure, where travel between Earth-like systems are long and far between. For instance, try to not put Terrestial planets too close, keep a few tens of ly between them.&lt;br /&gt;
&lt;br /&gt;
== Running the Editor ==&lt;br /&gt;
Launch the editor from where the editory binary is located with:&lt;br /&gt;
    ./editor --system&lt;br /&gt;
&lt;br /&gt;
Note (2024-02): If Microsoft Windows flags the binary as malicious software, it's not. You can always [https://github.com/pioneerspacesim/pioneer/tree/master/src/editor inspect the source] and compile your own.&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Custom_Systems&amp;diff=4550</id>
		<title>Custom Systems</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Custom_Systems&amp;diff=4550"/>
		<updated>2024-02-02T15:36:00Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: /* Design philosophy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Pioneer defines systems in JSON format (as of 2024, definitions in Lua are deprecated), edited using the editor provided with the game. Youtube-demonstration [https://www.youtube.com/watch?v=ZvwtlQa93zk here]. The goal of the editor is to make contributing custom systems as easy as possible, so Pioneer can have more custom systems. Ideally, all core systems should be custom made.&lt;br /&gt;
&lt;br /&gt;
== Design philosophy ==&lt;br /&gt;
&lt;br /&gt;
A designed system can always be shared with the community (e.g. [http://spacesimcentral.com/community/pioneer/ SpaceSimCentral]) for feedback, but of course it is much more rewarding to see your custom designed system included in the game, and this is one of the easiest contributions you can make, and also easy for maintaners to test and merge. &lt;br /&gt;
&lt;br /&gt;
Please load current custom systems as guide for the style we want for inclusion in master branch, but in short:&lt;br /&gt;
* Do not infringe on trademarks: no Star Wars, Star Trek, Elite/Frontier, Nintendo, references&lt;br /&gt;
* No aliens please. There can be alien life forms, like fauna, animals, but in general, we do not want &amp;quot;grays&amp;quot;, or &amp;quot;E.T.&amp;quot;. However, there can be tasteful hints to mysteries in system description, e.g. think of the writings of Arthur C. Clarke.&lt;br /&gt;
* If you include some history of the system in the description, then make sure it fits with the lore/time line of [[Pioneer_Universe]]. &lt;br /&gt;
* No &amp;quot;non-physical&amp;quot; systems: meaning, all systems should be &amp;quot;sane&amp;quot;, from an astronomical stand point.&lt;br /&gt;
* If your system is an existing star, model it as closely as possible to real astronomical data, e.g. star size, temperature, color, does it have known exo-plantes? Does it have multiple names, e.g. propper name, and star catalouge name? If so, use  &amp;lt;tt&amp;gt;other_names()&amp;lt;/tt&amp;gt; property to overload it (e.g. see source for wolf_359-system for code example)&lt;br /&gt;
* In general: consider space is a vast black void of nothingness, and Pioneer is a game of lonely space adventure, where travel between Earth-like systems are long and far between. For instance, try to not put Terrestial planets too close, keep a few tens of ly between them.&lt;br /&gt;
&lt;br /&gt;
== Running the Editor ==&lt;br /&gt;
Launch the editor from where the editory binary is located with:&lt;br /&gt;
    ./editor --system&lt;br /&gt;
&lt;br /&gt;
Note (2024-02): If Microsoft Windows flags the binary as malicious software, it's not. Really. Trust us, bro. If not: you can [https://github.com/pioneerspacesim/pioneer/tree/master/src/editor inspect the source] and compile your own.&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Custom_Systems&amp;diff=4549</id>
		<title>Custom Systems</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Custom_Systems&amp;diff=4549"/>
		<updated>2024-02-02T14:33:09Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: /* Running the Editor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Pioneer defines systems in JSON format (as of 2024, definitions in Lua are deprecated), edited using the editor provided with the game. Youtube-demonstration [https://www.youtube.com/watch?v=ZvwtlQa93zk here]. The goal of the editor is to make contributing custom systems as easy as possible, so Pioneer can have more custom systems. Ideally, all core systems should be custom made.&lt;br /&gt;
&lt;br /&gt;
== Design philosophy ==&lt;br /&gt;
&lt;br /&gt;
A designed system can always be shared with the community (e.g. [http://spacesimcentral.com/community/pioneer/ SpaceSimCentral]) for feedback, but of course it is much more rewarding to see your custom designed system included in the game, and this is one of the easiest contributions you can make, and also easy for maintaners to test and merge. &lt;br /&gt;
&lt;br /&gt;
Please load current custom systems as guide for the style we want for inclusion in master branch, but in short:&lt;br /&gt;
* Do not infringe on trademarks: no Star Wars, Star Trek, Elite/Frontier, Nintendo, references&lt;br /&gt;
* No aliens please. There can be alien life forms, like fauna, animals, but in general, we do not want &amp;quot;grays&amp;quot;, or &amp;quot;E.T.&amp;quot;. However, there can be tasteful hints to mysteries in system description, e.g. think of the writings of Arthur C. Clarke.&lt;br /&gt;
* If you include some history of the system in the description, then make sure it fits with the lore/time line of [[Pioneer_Universe]]. &lt;br /&gt;
* No &amp;quot;non-physical&amp;quot; systems: meaning, all systems should be &amp;quot;sane&amp;quot;, from an astronomical stand point.&lt;br /&gt;
* If your system is an existing star, model it as closely as possible to real astronomical data, e.g. star size, temperature, color, does it have known exo-plantes? Does it have multiple names, e.g. propper name, and star catalouge name? If so, use  &amp;lt;tt&amp;gt;other_names()&amp;lt;/tt&amp;gt; property to overload it (e.g. see source for wolf_359-system for code example)&lt;br /&gt;
&lt;br /&gt;
== Running the Editor ==&lt;br /&gt;
Launch the editor from where the editory binary is located with:&lt;br /&gt;
    ./editor --system&lt;br /&gt;
&lt;br /&gt;
Note (2024-02): If Microsoft Windows flags the binary as malicious software, it's not. Really. Trust us, bro. If not: you can [https://github.com/pioneerspacesim/pioneer/tree/master/src/editor inspect the source] and compile your own.&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Custom_Systems&amp;diff=4548</id>
		<title>Custom Systems</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Custom_Systems&amp;diff=4548"/>
		<updated>2024-02-02T12:59:25Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Pioneer defines systems in JSON format (as of 2024, definitions in Lua are deprecated), edited using the editor provided with the game. Youtube-demonstration [https://www.youtube.com/watch?v=ZvwtlQa93zk here]. The goal of the editor is to make contributing custom systems as easy as possible, so Pioneer can have more custom systems. Ideally, all core systems should be custom made.&lt;br /&gt;
&lt;br /&gt;
== Design philosophy ==&lt;br /&gt;
&lt;br /&gt;
A designed system can always be shared with the community (e.g. [http://spacesimcentral.com/community/pioneer/ SpaceSimCentral]) for feedback, but of course it is much more rewarding to see your custom designed system included in the game, and this is one of the easiest contributions you can make, and also easy for maintaners to test and merge. &lt;br /&gt;
&lt;br /&gt;
Please load current custom systems as guide for the style we want for inclusion in master branch, but in short:&lt;br /&gt;
* Do not infringe on trademarks: no Star Wars, Star Trek, Elite/Frontier, Nintendo, references&lt;br /&gt;
* No aliens please. There can be alien life forms, like fauna, animals, but in general, we do not want &amp;quot;grays&amp;quot;, or &amp;quot;E.T.&amp;quot;. However, there can be tasteful hints to mysteries in system description, e.g. think of the writings of Arthur C. Clarke.&lt;br /&gt;
* If you include some history of the system in the description, then make sure it fits with the lore/time line of [[Pioneer_Universe]]. &lt;br /&gt;
* No &amp;quot;non-physical&amp;quot; systems: meaning, all systems should be &amp;quot;sane&amp;quot;, from an astronomical stand point.&lt;br /&gt;
* If your system is an existing star, model it as closely as possible to real astronomical data, e.g. star size, temperature, color, does it have known exo-plantes? Does it have multiple names, e.g. propper name, and star catalouge name? If so, use  &amp;lt;tt&amp;gt;other_names()&amp;lt;/tt&amp;gt; property to overload it (e.g. see source for wolf_359-system for code example)&lt;br /&gt;
&lt;br /&gt;
== Running the Editor ==&lt;br /&gt;
Launch the editor from where the editory binary is located with:&lt;br /&gt;
    editor --system&lt;br /&gt;
&lt;br /&gt;
Note (2024-02): If Microsoft Windows flags the binary as malicious software, it's not. Really. Trust us, bro. If not: you can [https://github.com/pioneerspacesim/pioneer/tree/master/src/editor inspect the source] and compile your own.&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Mission_Types_and_BBS&amp;diff=4547</id>
		<title>Mission Types and BBS</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Mission_Types_and_BBS&amp;diff=4547"/>
		<updated>2023-11-23T11:31:03Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: Reverted edits by Impaktor (talk) to last revision by Digit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
The spaceport BBS-es are the avenue where pilots can look for work and other useful things and services.&lt;br /&gt;
&lt;br /&gt;
= Missions =&lt;br /&gt;
&lt;br /&gt;
There are several types of missions in Pioneer the player can take for different rewards. These missions are listed in the BBS section of spaceports. Some of them require a level of [[Reputation|reputation]] or [[Combat_rating|combat rating]] to be available for the player. Mission descriptions are self-explanatory, and the player can ask for the details in the dialog.&lt;br /&gt;
&lt;br /&gt;
Missions can be urgent, and or dangerous. The later means that the player can be attacked while trying to fulfill the mission. Most of them have interplanetary and inter-system variants.&lt;br /&gt;
&lt;br /&gt;
Rewards vary for different distances, cargo loads or the number of passengers or the riskiness for example.&lt;br /&gt;
&lt;br /&gt;
== Courier missions ==&lt;br /&gt;
&lt;br /&gt;
   NEARBY DELIVERY. Require quick delivery of an item to Dante's base.&lt;br /&gt;
   My name is Maria Myers and I need this item delivered to a friend at Dante's base pronto, I'll pay you $111.13 credits if you get it there in a reasonable time.&lt;br /&gt;
&lt;br /&gt;
Courier missions are about transferring small packages or messages to a specified spaceport before a given deadline. They aren't too rewarding, and they don't take any cargo space. They can be in-system, or inter-system and they can be urgent and dangerous too.&lt;br /&gt;
&lt;br /&gt;
== Cargo runs ==&lt;br /&gt;
&lt;br /&gt;
   RELOCATION. Move of cargo from Dante's base required.&lt;br /&gt;
   Greetings. I'm Joaquin Diaz. I will pay $217.15 to someone who will transport Plutonium from Dante's base to Los Angeles.&lt;br /&gt;
&lt;br /&gt;
Cargo runs require the pilot to transport small amounts of cargo to a specific destination, or to fetch it from a given location and ferry it back. Cargo runs require room for the load in the cargo hold, and the increased mass associated to it needs to be accounted for while planning the route and travel times. They usually pay better than courier missions, depending on distance and the amount of cargo needed to be delivered. They can be in-system or inter-system and urgent too.&lt;br /&gt;
&lt;br /&gt;
== Taxi missions ==&lt;br /&gt;
&lt;br /&gt;
   WANTED: Passage for a small group to Arayami system. Will pay $3,939.32.&lt;br /&gt;
   Hi, I'm Christine Fitzpatrick and I need passage for a small group to Arayami (-2, 0, 4) system, a distance of 35.96 ly. I will pay $3,939.32.&lt;br /&gt;
&lt;br /&gt;
Taxi missions require the pilot to transport a number of passengers to the designated system. Any port in the system will do. The ship needs to have a sufficient number of free passenger cabins. They are always inter-system missions, can be urgent and dangerous. These missions pay well, but require the pilot to fit cabins on the ship.&lt;br /&gt;
&lt;br /&gt;
== Assasinations ==&lt;br /&gt;
&lt;br /&gt;
   BIOGRAPHICAL: Some admirers wish Merchant Morag Lewis dead.&lt;br /&gt;
   We wish Merchant Morag Lewis to have a fitting career end in the Lalande 21185 system for $27,459.76.&lt;br /&gt;
&lt;br /&gt;
Shadier pilots can try their luck taking on bounties by destroying the ship of the target. They tend to fight back though, and the starport police won't be idling either, so these missions are as risky as high-paying. Usually they require some combat experience (kill count). The pilot needs to return to the system where the mission was taken to collect the bounty.&lt;br /&gt;
&lt;br /&gt;
== Search &amp;amp; Rescue missions ==&lt;br /&gt;
&lt;br /&gt;
   MEDICAL EMERGENCY on ship close to Itzalean.&lt;br /&gt;
   My name is Janet Basagoiti from Itzalean air traffic control. I am requesting help in response to a medical emergency involving the pilot of flight JX-4523 headed for Itzalean.&lt;br /&gt;
&lt;br /&gt;
Sometimes disaster strikes in the most inopportune moments. Ships run out of fuel on uninhabited planets, pilots get a heart attack, scientists incapacitate the crew by accidentally releasing a toxic gas sample from planet XY458 into the ship air supply. Being willing to help others in need will be good for any pilot's record, bank account, and conscience. Some rescue operations require free passenger cabins to secure personnel or transport replacement crew. Others require transport of commodities, such as fuel. Payment is dependent on the particular circumstances and will either happen at the site of rescue or after returning to the originating station. These missions require an intermediate piloting skill level because target ships need to be located manually either by latitude/longitude planet coordinates or by using the system overview screen for ships circling in planetary orbit. Furthermore, ship-to-ship transfer happens while holding a distance of 50 m between ships. Planet surface rescue operations require the pilot to land the ship within 50 m of the target.&lt;br /&gt;
&lt;br /&gt;
= Other BBS posts =&lt;br /&gt;
&lt;br /&gt;
== Hyperdrive mechanics ==&lt;br /&gt;
&lt;br /&gt;
   Natalia Lewis hyperdrive maintenance specialist&lt;br /&gt;
   I'm Natalia Lewis. I can repair your Class 3 Hyperdrive, guaranteeing  at least a year of trouble-free performance. The cost for this service will be $47.17.&lt;br /&gt;
   Your drive has not been serviced since it was installed on 00:00:00 1 Jan 3200&lt;br /&gt;
&lt;br /&gt;
These mechanics offer repair services for your hyperdrive. This is important because hyperdrives wear out with time and can produce catastrophic failures or severe mis-jumps if not maintained properly. Beware that you get what you pay for. There are even reports of low price mechanics who just reset the jump counter, not actually doing any repair service at all.&lt;br /&gt;
&lt;br /&gt;
== Merchants ==&lt;br /&gt;
&lt;br /&gt;
   Matthew Holdings&lt;br /&gt;
&lt;br /&gt;
These &amp;quot;merchants&amp;quot; operate in the shadier corners of spaceports, dealing with illegal goods, which aren't obtainable or sell-able on the regular market. Smuggling these things can be lucrative, but be aware that some of these merchants can be undercover police agents.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Used equipment ==&lt;br /&gt;
&lt;br /&gt;
   SELLING: Practically unused R40 Unguided Rocket, at an affordable price.&lt;br /&gt;
   Hi! My name is Edith Spears. I have this almost brand new R40 Unguided Rocket which I'm selling for  just $26.&lt;br /&gt;
&lt;br /&gt;
Sometimes the player can find cheap used equipment on the BBS. The price contains the installation price.&lt;br /&gt;
&lt;br /&gt;
== Fuel Clubs ==&lt;br /&gt;
&lt;br /&gt;
   The Federal Fuel Foundation&lt;br /&gt;
   The Federal Fuel Foundation is the leading provider of discounted fuel to it's members' starships in the Solar Federation.&lt;br /&gt;
&lt;br /&gt;
Fuel clubs can be found on lots of stations offering cheaper fuel and byproduct disposal (radioactives) for an annual fee. Different factions have different number of fuel club offices throughout their space. Their stocks are independent from the market, which might be depleted sometimes.&lt;br /&gt;
&lt;br /&gt;
== Crew for hire ==&lt;br /&gt;
&lt;br /&gt;
Pilots can look for crew here, inquire about their abilities, negotiate their wages.&lt;br /&gt;
&lt;br /&gt;
== Donation calls ==&lt;br /&gt;
&lt;br /&gt;
   FEELING GENEROUS? War Orphan's Support needs your help to keep  up its essential work.&lt;br /&gt;
   Please select an amount to donate to War Orphan's Support, and end the suffering of children all over the galaxy. &lt;br /&gt;
&lt;br /&gt;
Generous pilots can contribute money to different organizations, increasing their reputation. Good karma could prove useful in the long run after all.&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
&lt;br /&gt;
Sometimes news about neighboring systems can turn up in BBS-es. These articles could provide useful insight about happenings, events or business opportunities of the area.&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Mission_Types_and_BBS&amp;diff=4546</id>
		<title>Mission Types and BBS</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Mission_Types_and_BBS&amp;diff=4546"/>
		<updated>2023-11-21T14:20:38Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: /* Other BBS posts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
The spaceport BBS-es are the avenue where pilots can look for work and other useful things and services.&lt;br /&gt;
&lt;br /&gt;
= Missions =&lt;br /&gt;
&lt;br /&gt;
There are several types of missions in Pioneer the player can take for different rewards. These missions are listed in the BBS section of spaceports. Some of them require a level of [[Reputation|reputation]] or [[Combat_rating|combat rating]] to be available for the player. Mission descriptions are self-explanatory, and the player can ask for the details in the dialog.&lt;br /&gt;
&lt;br /&gt;
Missions can be urgent, and or dangerous. The later means that the player can be attacked while trying to fulfill the mission. Most of them have interplanetary and inter-system variants.&lt;br /&gt;
&lt;br /&gt;
Rewards vary for different distances, cargo loads or the number of passengers or the riskiness for example.&lt;br /&gt;
&lt;br /&gt;
== Courier missions ==&lt;br /&gt;
&lt;br /&gt;
   NEARBY DELIVERY. Require quick delivery of an item to Dante's base.&lt;br /&gt;
   My name is Maria Myers and I need this item delivered to a friend at Dante's base pronto, I'll pay you $111.13 credits if you get it there in a reasonable time.&lt;br /&gt;
&lt;br /&gt;
Courier missions are about transferring small packages or messages to a specified spaceport before a given deadline. They aren't too rewarding, and they don't take any cargo space. They can be in-system, or inter-system and they can be urgent and dangerous too.&lt;br /&gt;
&lt;br /&gt;
== Cargo runs ==&lt;br /&gt;
&lt;br /&gt;
   RELOCATION. Move of cargo from Dante's base required.&lt;br /&gt;
   Greetings. I'm Joaquin Diaz. I will pay $217.15 to someone who will transport Plutonium from Dante's base to Los Angeles.&lt;br /&gt;
&lt;br /&gt;
Cargo runs require the pilot to transport small amounts of cargo to a specific destination, or to fetch it from a given location and ferry it back. Cargo runs require room for the load in the cargo hold, and the increased mass associated to it needs to be accounted for while planning the route and travel times. They usually pay better than courier missions, depending on distance and the amount of cargo needed to be delivered. They can be in-system or inter-system and urgent too.&lt;br /&gt;
&lt;br /&gt;
== Taxi missions ==&lt;br /&gt;
&lt;br /&gt;
   WANTED: Passage for a small group to Arayami system. Will pay $3,939.32.&lt;br /&gt;
   Hi, I'm Christine Fitzpatrick and I need passage for a small group to Arayami (-2, 0, 4) system, a distance of 35.96 ly. I will pay $3,939.32.&lt;br /&gt;
&lt;br /&gt;
Taxi missions require the pilot to transport a number of passengers to the designated system. Any port in the system will do. The ship needs to have a sufficient number of free passenger cabins. They are always inter-system missions, can be urgent and dangerous. These missions pay well, but require the pilot to fit cabins on the ship.&lt;br /&gt;
&lt;br /&gt;
== Assasinations ==&lt;br /&gt;
&lt;br /&gt;
   BIOGRAPHICAL: Some admirers wish Merchant Morag Lewis dead.&lt;br /&gt;
   We wish Merchant Morag Lewis to have a fitting career end in the Lalande 21185 system for $27,459.76.&lt;br /&gt;
&lt;br /&gt;
Shadier pilots can try their luck taking on bounties by destroying the ship of the target. They tend to fight back though, and the starport police won't be idling either, so these missions are as risky as high-paying. Usually they require some combat experience (kill count). The pilot needs to return to the system where the mission was taken to collect the bounty.&lt;br /&gt;
&lt;br /&gt;
== Scout ==&lt;br /&gt;
&lt;br /&gt;
   CARTOGRAPHY CONTRACT &amp;quot;Mapping of planet in {system} system&lt;br /&gt;
   &lt;br /&gt;
You will need special equipment for these missions, either a planet scanner, if the task is to do a low altitude scan of surface, or an orbit scanner if you are required to map the planet from orbit.&lt;br /&gt;
&lt;br /&gt;
== Search &amp;amp; Rescue missions ==&lt;br /&gt;
&lt;br /&gt;
   MEDICAL EMERGENCY on ship close to Itzalean.&lt;br /&gt;
   My name is Janet Basagoiti from Itzalean air traffic control. I am requesting help in response to a medical emergency involving the pilot of flight JX-4523 headed for Itzalean.&lt;br /&gt;
&lt;br /&gt;
Sometimes disaster strikes in the most inopportune moments. Ships run out of fuel on uninhabited planets, pilots get a heart attack, scientists incapacitate the crew by accidentally releasing a toxic gas sample from planet XY458 into the ship air supply. Being willing to help others in need will be good for any pilot's record, bank account, and conscience. Some rescue operations require free passenger cabins to secure personnel or transport replacement crew. Others require transport of commodities, such as fuel. Payment is dependent on the particular circumstances and will either happen at the site of rescue or after returning to the originating station. These missions require an intermediate piloting skill level because target ships need to be located manually either by latitude/longitude planet coordinates or by using the system overview screen for ships circling in planetary orbit. Furthermore, ship-to-ship transfer happens while holding a distance of 50 m between ships. Planet surface rescue operations require the pilot to land the ship within 50 m of the target.&lt;br /&gt;
&lt;br /&gt;
= Other BBS posts =&lt;br /&gt;
&lt;br /&gt;
== Advice ==&lt;br /&gt;
   Some pilots share advice useful for the adventurous life at the Frontier.&lt;br /&gt;
&lt;br /&gt;
== Hyperdrive mechanics ==&lt;br /&gt;
&lt;br /&gt;
   Natalia Lewis hyperdrive maintenance specialist&lt;br /&gt;
   I'm Natalia Lewis. I can repair your Class 3 Hyperdrive, guaranteeing  at least a year of trouble-free performance. The cost for this service will be $47.17.&lt;br /&gt;
   Your drive has not been serviced since it was installed on 00:00:00 1 Jan 3200&lt;br /&gt;
&lt;br /&gt;
These mechanics offer repair services for your hyperdrive. This is important because hyperdrives wear out with time and can produce catastrophic failures or severe mis-jumps if not maintained properly. Beware that you get what you pay for. There are even reports of low price mechanics who just reset the jump counter, not actually doing any repair service at all.&lt;br /&gt;
&lt;br /&gt;
== Merchants ==&lt;br /&gt;
&lt;br /&gt;
   Matthew Holdings&lt;br /&gt;
&lt;br /&gt;
These &amp;quot;merchants&amp;quot; operate in the shadier corners of spaceports, dealing with illegal goods, which aren't obtainable or sell-able on the regular market. Smuggling these things can be lucrative, but be aware that some of these merchants can be undercover police agents.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Used equipment ==&lt;br /&gt;
&lt;br /&gt;
   SELLING: Practically unused R40 Unguided Rocket, at an affordable price.&lt;br /&gt;
   Hi! My name is Edith Spears. I have this almost brand new R40 Unguided Rocket which I'm selling for  just $26.&lt;br /&gt;
&lt;br /&gt;
Sometimes the player can find cheap used equipment on the BBS. The price contains the installation price.&lt;br /&gt;
&lt;br /&gt;
== Fuel Clubs ==&lt;br /&gt;
&lt;br /&gt;
   The Federal Fuel Foundation&lt;br /&gt;
   The Federal Fuel Foundation is the leading provider of discounted fuel to it's members' starships in the Solar Federation.&lt;br /&gt;
&lt;br /&gt;
Fuel clubs can be found on lots of stations offering cheaper fuel and byproduct disposal (radioactives) for an annual fee. Different factions have different number of fuel club offices throughout their space. Their stocks are independent from the market, which might be depleted sometimes.&lt;br /&gt;
&lt;br /&gt;
== Crew for hire ==&lt;br /&gt;
&lt;br /&gt;
Pilots can look for crew here, inquire about their abilities, negotiate their wages.&lt;br /&gt;
&lt;br /&gt;
== Donation calls ==&lt;br /&gt;
&lt;br /&gt;
   FEELING GENEROUS? War Orphan's Support needs your help to keep  up its essential work.&lt;br /&gt;
   Please select an amount to donate to War Orphan's Support, and end the suffering of children all over the galaxy. &lt;br /&gt;
&lt;br /&gt;
Generous pilots can contribute money to different organizations, increasing their reputation. Good karma could prove useful in the long run after all.&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
&lt;br /&gt;
Sometimes news about neighboring systems can turn up in BBS-es. These articles provide useful insight about business opportunities of the area that are causing large shifts in the local commodity prices.&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Mission_Types_and_BBS&amp;diff=4545</id>
		<title>Mission Types and BBS</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Mission_Types_and_BBS&amp;diff=4545"/>
		<updated>2023-10-24T08:58:04Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: /* Missions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
The spaceport BBS-es are the avenue where pilots can look for work and other useful things and services.&lt;br /&gt;
&lt;br /&gt;
= Missions =&lt;br /&gt;
&lt;br /&gt;
There are several types of missions in Pioneer the player can take for different rewards. These missions are listed in the BBS section of spaceports. Some of them require a level of [[Reputation|reputation]] or [[Combat_rating|combat rating]] to be available for the player. Mission descriptions are self-explanatory, and the player can ask for the details in the dialog.&lt;br /&gt;
&lt;br /&gt;
Missions can be urgent, and or dangerous. The later means that the player can be attacked while trying to fulfill the mission. Most of them have interplanetary and inter-system variants.&lt;br /&gt;
&lt;br /&gt;
Rewards vary for different distances, cargo loads or the number of passengers or the riskiness for example.&lt;br /&gt;
&lt;br /&gt;
== Courier missions ==&lt;br /&gt;
&lt;br /&gt;
   NEARBY DELIVERY. Require quick delivery of an item to Dante's base.&lt;br /&gt;
   My name is Maria Myers and I need this item delivered to a friend at Dante's base pronto, I'll pay you $111.13 credits if you get it there in a reasonable time.&lt;br /&gt;
&lt;br /&gt;
Courier missions are about transferring small packages or messages to a specified spaceport before a given deadline. They aren't too rewarding, and they don't take any cargo space. They can be in-system, or inter-system and they can be urgent and dangerous too.&lt;br /&gt;
&lt;br /&gt;
== Cargo runs ==&lt;br /&gt;
&lt;br /&gt;
   RELOCATION. Move of cargo from Dante's base required.&lt;br /&gt;
   Greetings. I'm Joaquin Diaz. I will pay $217.15 to someone who will transport Plutonium from Dante's base to Los Angeles.&lt;br /&gt;
&lt;br /&gt;
Cargo runs require the pilot to transport small amounts of cargo to a specific destination, or to fetch it from a given location and ferry it back. Cargo runs require room for the load in the cargo hold, and the increased mass associated to it needs to be accounted for while planning the route and travel times. They usually pay better than courier missions, depending on distance and the amount of cargo needed to be delivered. They can be in-system or inter-system and urgent too.&lt;br /&gt;
&lt;br /&gt;
== Taxi missions ==&lt;br /&gt;
&lt;br /&gt;
   WANTED: Passage for a small group to Arayami system. Will pay $3,939.32.&lt;br /&gt;
   Hi, I'm Christine Fitzpatrick and I need passage for a small group to Arayami (-2, 0, 4) system, a distance of 35.96 ly. I will pay $3,939.32.&lt;br /&gt;
&lt;br /&gt;
Taxi missions require the pilot to transport a number of passengers to the designated system. Any port in the system will do. The ship needs to have a sufficient number of free passenger cabins. They are always inter-system missions, can be urgent and dangerous. These missions pay well, but require the pilot to fit cabins on the ship.&lt;br /&gt;
&lt;br /&gt;
== Assasinations ==&lt;br /&gt;
&lt;br /&gt;
   BIOGRAPHICAL: Some admirers wish Merchant Morag Lewis dead.&lt;br /&gt;
   We wish Merchant Morag Lewis to have a fitting career end in the Lalande 21185 system for $27,459.76.&lt;br /&gt;
&lt;br /&gt;
Shadier pilots can try their luck taking on bounties by destroying the ship of the target. They tend to fight back though, and the starport police won't be idling either, so these missions are as risky as high-paying. Usually they require some combat experience (kill count). The pilot needs to return to the system where the mission was taken to collect the bounty.&lt;br /&gt;
&lt;br /&gt;
== Scout ==&lt;br /&gt;
&lt;br /&gt;
   CARTOGRAPHY CONTRACT &amp;quot;Mapping of planet in {system} system&lt;br /&gt;
   &lt;br /&gt;
You will need special equipment for these missions, either a planet scanner, if the task is to do a low altitude scan of surface, or an orbit scanner if you are required to map the planet from orbit.&lt;br /&gt;
&lt;br /&gt;
== Search &amp;amp; Rescue missions ==&lt;br /&gt;
&lt;br /&gt;
   MEDICAL EMERGENCY on ship close to Itzalean.&lt;br /&gt;
   My name is Janet Basagoiti from Itzalean air traffic control. I am requesting help in response to a medical emergency involving the pilot of flight JX-4523 headed for Itzalean.&lt;br /&gt;
&lt;br /&gt;
Sometimes disaster strikes in the most inopportune moments. Ships run out of fuel on uninhabited planets, pilots get a heart attack, scientists incapacitate the crew by accidentally releasing a toxic gas sample from planet XY458 into the ship air supply. Being willing to help others in need will be good for any pilot's record, bank account, and conscience. Some rescue operations require free passenger cabins to secure personnel or transport replacement crew. Others require transport of commodities, such as fuel. Payment is dependent on the particular circumstances and will either happen at the site of rescue or after returning to the originating station. These missions require an intermediate piloting skill level because target ships need to be located manually either by latitude/longitude planet coordinates or by using the system overview screen for ships circling in planetary orbit. Furthermore, ship-to-ship transfer happens while holding a distance of 50 m between ships. Planet surface rescue operations require the pilot to land the ship within 50 m of the target.&lt;br /&gt;
&lt;br /&gt;
= Other BBS posts =&lt;br /&gt;
&lt;br /&gt;
== Hyperdrive mechanics ==&lt;br /&gt;
&lt;br /&gt;
   Natalia Lewis hyperdrive maintenance specialist&lt;br /&gt;
   I'm Natalia Lewis. I can repair your Class 3 Hyperdrive, guaranteeing  at least a year of trouble-free performance. The cost for this service will be $47.17.&lt;br /&gt;
   Your drive has not been serviced since it was installed on 00:00:00 1 Jan 3200&lt;br /&gt;
&lt;br /&gt;
These mechanics offer repair services for your hyperdrive. This is important because hyperdrives wear out with time and can produce catastrophic failures or severe mis-jumps if not maintained properly. Beware that you get what you pay for. There are even reports of low price mechanics who just reset the jump counter, not actually doing any repair service at all.&lt;br /&gt;
&lt;br /&gt;
== Merchants ==&lt;br /&gt;
&lt;br /&gt;
   Matthew Holdings&lt;br /&gt;
&lt;br /&gt;
These &amp;quot;merchants&amp;quot; operate in the shadier corners of spaceports, dealing with illegal goods, which aren't obtainable or sell-able on the regular market. Smuggling these things can be lucrative, but be aware that some of these merchants can be undercover police agents.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Used equipment ==&lt;br /&gt;
&lt;br /&gt;
   SELLING: Practically unused R40 Unguided Rocket, at an affordable price.&lt;br /&gt;
   Hi! My name is Edith Spears. I have this almost brand new R40 Unguided Rocket which I'm selling for  just $26.&lt;br /&gt;
&lt;br /&gt;
Sometimes the player can find cheap used equipment on the BBS. The price contains the installation price.&lt;br /&gt;
&lt;br /&gt;
== Fuel Clubs ==&lt;br /&gt;
&lt;br /&gt;
   The Federal Fuel Foundation&lt;br /&gt;
   The Federal Fuel Foundation is the leading provider of discounted fuel to it's members' starships in the Solar Federation.&lt;br /&gt;
&lt;br /&gt;
Fuel clubs can be found on lots of stations offering cheaper fuel and byproduct disposal (radioactives) for an annual fee. Different factions have different number of fuel club offices throughout their space. Their stocks are independent from the market, which might be depleted sometimes.&lt;br /&gt;
&lt;br /&gt;
== Crew for hire ==&lt;br /&gt;
&lt;br /&gt;
Pilots can look for crew here, inquire about their abilities, negotiate their wages.&lt;br /&gt;
&lt;br /&gt;
== Donation calls ==&lt;br /&gt;
&lt;br /&gt;
   FEELING GENEROUS? War Orphan's Support needs your help to keep  up its essential work.&lt;br /&gt;
   Please select an amount to donate to War Orphan's Support, and end the suffering of children all over the galaxy. &lt;br /&gt;
&lt;br /&gt;
Generous pilots can contribute money to different organizations, increasing their reputation. Good karma could prove useful in the long run after all.&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
&lt;br /&gt;
Sometimes news about neighboring systems can turn up in BBS-es. These articles provide useful insight about business opportunities of the area that are causing large shifts in the local commodity prices.&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Mission_Types_and_BBS&amp;diff=4544</id>
		<title>Mission Types and BBS</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Mission_Types_and_BBS&amp;diff=4544"/>
		<updated>2023-10-24T08:52:36Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: /* News */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
The spaceport BBS-es are the avenue where pilots can look for work and other useful things and services.&lt;br /&gt;
&lt;br /&gt;
= Missions =&lt;br /&gt;
&lt;br /&gt;
There are several types of missions in Pioneer the player can take for different rewards. These missions are listed in the BBS section of spaceports. Some of them require a level of [[Reputation|reputation]] or [[Combat_rating|combat rating]] to be available for the player. Mission descriptions are self-explanatory, and the player can ask for the details in the dialog.&lt;br /&gt;
&lt;br /&gt;
Missions can be urgent, and or dangerous. The later means that the player can be attacked while trying to fulfill the mission. Most of them have interplanetary and inter-system variants.&lt;br /&gt;
&lt;br /&gt;
Rewards vary for different distances, cargo loads or the number of passengers or the riskiness for example.&lt;br /&gt;
&lt;br /&gt;
== Courier missions ==&lt;br /&gt;
&lt;br /&gt;
   NEARBY DELIVERY. Require quick delivery of an item to Dante's base.&lt;br /&gt;
   My name is Maria Myers and I need this item delivered to a friend at Dante's base pronto, I'll pay you $111.13 credits if you get it there in a reasonable time.&lt;br /&gt;
&lt;br /&gt;
Courier missions are about transferring small packages or messages to a specified spaceport before a given deadline. They aren't too rewarding, and they don't take any cargo space. They can be in-system, or inter-system and they can be urgent and dangerous too.&lt;br /&gt;
&lt;br /&gt;
== Cargo runs ==&lt;br /&gt;
&lt;br /&gt;
   RELOCATION. Move of cargo from Dante's base required.&lt;br /&gt;
   Greetings. I'm Joaquin Diaz. I will pay $217.15 to someone who will transport Plutonium from Dante's base to Los Angeles.&lt;br /&gt;
&lt;br /&gt;
Cargo runs require the pilot to transport small amounts of cargo to a specific destination, or to fetch it from a given location and ferry it back. Cargo runs require room for the load in the cargo hold, and the increased mass associated to it needs to be accounted for while planning the route and travel times. They usually pay better than courier missions, depending on distance and the amount of cargo needed to be delivered. They can be in-system or inter-system and urgent too.&lt;br /&gt;
&lt;br /&gt;
== Taxi missions ==&lt;br /&gt;
&lt;br /&gt;
   WANTED: Passage for a small group to Arayami system. Will pay $3,939.32.&lt;br /&gt;
   Hi, I'm Christine Fitzpatrick and I need passage for a small group to Arayami (-2, 0, 4) system, a distance of 35.96 ly. I will pay $3,939.32.&lt;br /&gt;
&lt;br /&gt;
Taxi missions require the pilot to transport a number of passengers to the designated system. Any port in the system will do. The ship needs to have a sufficient number of free passenger cabins. They are always inter-system missions, can be urgent and dangerous. These missions pay well, but require the pilot to fit cabins on the ship.&lt;br /&gt;
&lt;br /&gt;
== Assasinations ==&lt;br /&gt;
&lt;br /&gt;
   BIOGRAPHICAL: Some admirers wish Merchant Morag Lewis dead.&lt;br /&gt;
   We wish Merchant Morag Lewis to have a fitting career end in the Lalande 21185 system for $27,459.76.&lt;br /&gt;
&lt;br /&gt;
Shadier pilots can try their luck taking on bounties by destroying the ship of the target. They tend to fight back though, and the starport police won't be idling either, so these missions are as risky as high-paying. Usually they require some combat experience (kill count). The pilot needs to return to the system where the mission was taken to collect the bounty.&lt;br /&gt;
&lt;br /&gt;
== Search &amp;amp; Rescue missions ==&lt;br /&gt;
&lt;br /&gt;
   MEDICAL EMERGENCY on ship close to Itzalean.&lt;br /&gt;
   My name is Janet Basagoiti from Itzalean air traffic control. I am requesting help in response to a medical emergency involving the pilot of flight JX-4523 headed for Itzalean.&lt;br /&gt;
&lt;br /&gt;
Sometimes disaster strikes in the most inopportune moments. Ships run out of fuel on uninhabited planets, pilots get a heart attack, scientists incapacitate the crew by accidentally releasing a toxic gas sample from planet XY458 into the ship air supply. Being willing to help others in need will be good for any pilot's record, bank account, and conscience. Some rescue operations require free passenger cabins to secure personnel or transport replacement crew. Others require transport of commodities, such as fuel. Payment is dependent on the particular circumstances and will either happen at the site of rescue or after returning to the originating station. These missions require an intermediate piloting skill level because target ships need to be located manually either by latitude/longitude planet coordinates or by using the system overview screen for ships circling in planetary orbit. Furthermore, ship-to-ship transfer happens while holding a distance of 50 m between ships. Planet surface rescue operations require the pilot to land the ship within 50 m of the target.&lt;br /&gt;
&lt;br /&gt;
= Other BBS posts =&lt;br /&gt;
&lt;br /&gt;
== Hyperdrive mechanics ==&lt;br /&gt;
&lt;br /&gt;
   Natalia Lewis hyperdrive maintenance specialist&lt;br /&gt;
   I'm Natalia Lewis. I can repair your Class 3 Hyperdrive, guaranteeing  at least a year of trouble-free performance. The cost for this service will be $47.17.&lt;br /&gt;
   Your drive has not been serviced since it was installed on 00:00:00 1 Jan 3200&lt;br /&gt;
&lt;br /&gt;
These mechanics offer repair services for your hyperdrive. This is important because hyperdrives wear out with time and can produce catastrophic failures or severe mis-jumps if not maintained properly. Beware that you get what you pay for. There are even reports of low price mechanics who just reset the jump counter, not actually doing any repair service at all.&lt;br /&gt;
&lt;br /&gt;
== Merchants ==&lt;br /&gt;
&lt;br /&gt;
   Matthew Holdings&lt;br /&gt;
&lt;br /&gt;
These &amp;quot;merchants&amp;quot; operate in the shadier corners of spaceports, dealing with illegal goods, which aren't obtainable or sell-able on the regular market. Smuggling these things can be lucrative, but be aware that some of these merchants can be undercover police agents.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Used equipment ==&lt;br /&gt;
&lt;br /&gt;
   SELLING: Practically unused R40 Unguided Rocket, at an affordable price.&lt;br /&gt;
   Hi! My name is Edith Spears. I have this almost brand new R40 Unguided Rocket which I'm selling for  just $26.&lt;br /&gt;
&lt;br /&gt;
Sometimes the player can find cheap used equipment on the BBS. The price contains the installation price.&lt;br /&gt;
&lt;br /&gt;
== Fuel Clubs ==&lt;br /&gt;
&lt;br /&gt;
   The Federal Fuel Foundation&lt;br /&gt;
   The Federal Fuel Foundation is the leading provider of discounted fuel to it's members' starships in the Solar Federation.&lt;br /&gt;
&lt;br /&gt;
Fuel clubs can be found on lots of stations offering cheaper fuel and byproduct disposal (radioactives) for an annual fee. Different factions have different number of fuel club offices throughout their space. Their stocks are independent from the market, which might be depleted sometimes.&lt;br /&gt;
&lt;br /&gt;
== Crew for hire ==&lt;br /&gt;
&lt;br /&gt;
Pilots can look for crew here, inquire about their abilities, negotiate their wages.&lt;br /&gt;
&lt;br /&gt;
== Donation calls ==&lt;br /&gt;
&lt;br /&gt;
   FEELING GENEROUS? War Orphan's Support needs your help to keep  up its essential work.&lt;br /&gt;
   Please select an amount to donate to War Orphan's Support, and end the suffering of children all over the galaxy. &lt;br /&gt;
&lt;br /&gt;
Generous pilots can contribute money to different organizations, increasing their reputation. Good karma could prove useful in the long run after all.&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
&lt;br /&gt;
Sometimes news about neighboring systems can turn up in BBS-es. These articles provide useful insight about business opportunities of the area that are causing large shifts in the local commodity prices.&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=IRC&amp;diff=4542</id>
		<title>IRC</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=IRC&amp;diff=4542"/>
		<updated>2023-10-12T08:43:01Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: /* Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''IRC''' stands for '''I'''nternet '''R'''elay '''C'''hat. We [https://koshka.love/babel/irc-forever.html use it] for real-time internet text messaging related to the project.&lt;br /&gt;
&lt;br /&gt;
All the engaged people from the community and the dev team can be found there, and are usually quick to answer during European day/evening time.&lt;br /&gt;
&lt;br /&gt;
== Connect ==&lt;br /&gt;
&lt;br /&gt;
As of 2021-05-26, Pioneer has moved to the [https://libera.chat/guides/ libera.chat] IRC network, which can be connected to at irc.libera.chat, port 6667 (6697 for SSL).&lt;br /&gt;
&lt;br /&gt;
We use the following channel:&lt;br /&gt;
&lt;br /&gt;
 #pioneer&lt;br /&gt;
 -This is the only and official pioneer channel&lt;br /&gt;
&lt;br /&gt;
=== Webchat ===&lt;br /&gt;
Easiest if you're new to IRC, is to just click [https://kiwiirc.com/nextclient/irc.libera.chat/?channel=#pioneer here] (or use libera's own kiwi IRC [https://web.libera.chat/#pioneer here]) which will open a webchat instance to the #pioneer channel in your browser (type message at bottom, where text indicates).&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
If you plan to use IRC frequently, you are adviced to download a real IRC client program. There are [https://en.wikipedia.org/wiki/Comparison_of_Internet_Relay_Chat_clients many options], but some popular programs are:&lt;br /&gt;
&lt;br /&gt;
*[http://www.leafdigital.com/software/leafchat/ Leafchat] (multiplatform, GUI)&lt;br /&gt;
*[http://www.irssi.org/ irssi] (popular, terminal based)&lt;br /&gt;
*[http://xchat.org/ X-Chat] (free on Linux only, almost always available in distribution repositories)&lt;br /&gt;
*[http://www.hexchat.org/ HexChat] (fork of X-Chat, free on Windows and Linux, not always available in distribution repositories)&lt;br /&gt;
*[https://weechat.org/about WeeChat] (multiplatform)&lt;br /&gt;
&lt;br /&gt;
=== Channel Info ===&lt;br /&gt;
&lt;br /&gt;
The channel has a bot, in [https://pioneerwiki.com/wiki/Jameson cmd_jameson], to which one can leave messages to users who are currently not logged in. A number of users are in the channel 24/7 and check the backlog daily. Usually, the channel is quiet during CET night.&lt;br /&gt;
&lt;br /&gt;
=== IRC Backlog / Bouncer ===&lt;br /&gt;
It is possible to get channel backlog for when not logged in by using an [[Bouncer|IRC Bouncer]] that is logged into the channel as your user, and then you connect to this service, rather than directly to the IRC network (libera.chat). It will then replay the channel history since your last visit. There are [https://wiki.znc.in/Providers several znc providers] one can use. The pioneer development team is currently running one for anyone active in the channel discussions and/or in the game development, just ask devs in IRC if you are interested in an account. Once one has been made, follow [[Bouncer|instructions here]].&lt;br /&gt;
&lt;br /&gt;
== No Freenode? ==&lt;br /&gt;
Pioneer's IRC channel was on the freenode network at least from 2013-2021. However, in May of 2021, there was a [https://www.kline.sh/ hostile take over] of the freenode network, and we joined the original freenode staff, and most other channels, in moving to its spiritual successor: libera.chat. For more info, please see:&lt;br /&gt;
* [https://www.devever.net/~hl/freenode_abuse Freenode IRC operators now engaging in routine abuses of power]&lt;br /&gt;
* [https://github.com/freenode/web-7.0/commit/1194a3e71a427a669ccdddee22006416d46eeb43 freenode policy update]&lt;br /&gt;
* [https://mastodon.sdf.org/@kline/106299403921451814 andrew lee just seized over 700 channels on freenode]&lt;br /&gt;
* [https://www.gentoo.org/news/2021/05/26/gentoo-freenode-channels-hijacked.html Gentoo Freenode channels have been hijacked]&lt;br /&gt;
* [https://twitter.com/mjg59/status/1397389042619097095 More hijacking]&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Using_git_and_GitHub&amp;diff=4541</id>
		<title>Using git and GitHub</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Using_git_and_GitHub&amp;diff=4541"/>
		<updated>2023-10-03T13:14:55Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Page moved to:&lt;br /&gt;
https://dev.pioneerspacesim.net/contribute/git-and-github&lt;br /&gt;
&lt;br /&gt;
Any edits should be made there, i.e. can use github editor and edit inplace &lt;br /&gt;
https://github.com/pioneerspacesim/pioneer-developer-docs/blob/master/contribute/git-and-github.md&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Using_git_and_GitHub&amp;diff=4540</id>
		<title>Using git and GitHub</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Using_git_and_GitHub&amp;diff=4540"/>
		<updated>2023-10-03T13:13:30Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: Replaced content with &amp;quot;Page moved to: https://dev.pioneerspacesim.net/contribute/git-and-github&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Page moved to:&lt;br /&gt;
https://dev.pioneerspacesim.net/contribute/git-and-github&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Manual&amp;diff=4516</id>
		<title>Manual</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Manual&amp;diff=4516"/>
		<updated>2023-09-17T09:32:20Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: /* Main menu */ Updated main menu to reflect pioneer master branch as of september 2023.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pioneer is a space adventure game set in the Milky-way 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;
This reference manual provides a brief overview of the game.&lt;br /&gt;
&lt;br /&gt;
This manual is a good bit out of date, but is slowly being improved.&lt;br /&gt;
&lt;br /&gt;
== Main menu ==&lt;br /&gt;
[[File:00_main_menu.png|right|600px]]&lt;br /&gt;
* '''Continue Game''': Loads the game you saved previously using quick-save (Ctrl+F9).&lt;br /&gt;
* '''New game''': Select your character and starting location:&lt;br /&gt;
** '''Start on Mars''': You start the game in the Solar System, on Mars, at Cydonia Spaceport with an outfitted [[Coronatrix]]. This is considered an easy start. Sol is the capital of the Solar Federation.&lt;br /&gt;
** '''Start at New Hope''': You start in Epsilon Eridani, the capital of the Commonwealth of Independent Worlds. Your [[Pumpkinseed]] stands on Itzalean Spaceport on New Hope. This is a bit more difficult starting point than Earth. Itzalean is an area with frequent solar eclipses.&lt;br /&gt;
** '''Start at Barnard's Star''': You start on the dock of High Security Prison Tranquility, orbiting Barnard's Star, not far from Sol. You have a poorly outfitted [[Xylophis]], so you can consider it a difficult start.&lt;br /&gt;
* '''Load Game''': You can load previously saved games here. NOTE: Saves created with older versions of Pioneer might not load. This usually happens after a major update to the game.&lt;br /&gt;
* '''Options''': Opens Pioneer's [[Settings Menu]]. From here you can set up graphics, controls, audio volumes or language, for example.&lt;br /&gt;
* '''Quit''': Exit the game.&lt;br /&gt;
* '''Build''': Shown in the lower-right corner, this number is the build of the game you are running. Basically a version number, useful for reporting bugs.&lt;br /&gt;
&lt;br /&gt;
==Flight==&lt;br /&gt;
Flight physics in Pioneer is Newtonian, which means there's no arbitrary limit to speed, orientation or position. A ship doesn't slow down in space, until it actively thrusts in the opposite direction it's flying. Or hits something. Or encounters a force, like gravity. Ship acceleration depends on ship mass and engine thrust. Because there's no friction in space, you can reach very high speeds compared to what we are used to here on Earth, up to ''thousands'' of kilometers per second.&lt;br /&gt;
&lt;br /&gt;
In space, speed only has meaning relative to some point of reference. In Pioneer, this reference body is selected automatically, and is whichever star, planet, or moon currently exerts gravitational force on you. &lt;br /&gt;
&lt;br /&gt;
There's an assisted flight mode which compensates for the frictionless motion of your ship in space, called Set Speed mode. It tries to maintain a set speed in the direction the ship is facing, using maneuvering thrusters. The effectiveness of this aid varies ship to ship, and the mass of your cargo load will also have an effect.&lt;br /&gt;
&lt;br /&gt;
Compared to today's spacecraft, ships in Pioneer are quite powerful in terms of acceleration, cargo and delta-v capacity. It's entirely possible to travel to the edge of a star system, even with the smallest shuttle. It will just take significantly more time.&lt;br /&gt;
&lt;br /&gt;
Gravity is simulated on a two-body level. You can orbit any planet or moon, but only the closest body's gravity affects your ship. This is the same body you measure your speed to. This also means that you have to take the planets gravity into account when you are flying close to it, landing, or taking off. You can also use this to your advantage to alter your course using less fuel for example.&lt;br /&gt;
&lt;br /&gt;
Distances are realistic, so space travel can take several days, or even weeks, in a large system. Time can be accelerated up to 10,000 times to shorten the game time for the player. This doesn't correspond with any device or technology in the game universe, it's just a UI/Gameplay feature.&lt;br /&gt;
&lt;br /&gt;
=== Flight UI ===&lt;br /&gt;
&lt;br /&gt;
Beginners are strongly recommended a look at the [http://pioneerwiki.com/wiki/Basic_flight Basic flight] article, to learn how to control the ship.&lt;br /&gt;
&lt;br /&gt;
When you pick your starting point, you will get behind the controls of your ship. [[File:Basic_flight_ui_2023.jpg|right|600px|Basic_flight_ui_2023.jpg]] There are several things on the flight UI:&lt;br /&gt;
&lt;br /&gt;
*'''Prograde marker:''' The direction you are flying relative to the point of reference, &lt;br /&gt;
*'''Speed relative to reference body''': The speed of the ship relative to the point of reference (''&amp;quot;System&amp;quot;'' in this example). &lt;br /&gt;
*'''Prograde marker &amp;amp; speed (target)''': Direction and speed of the ship relative to the target (which itself moves around a star for example) &lt;br /&gt;
*'''Heading''': Only shown, top centre of screen, when close to planet (not shown in screen shot here). Can switch reference system by clicking it to be either in planetary coordinates, heading 0 = north, 90 = east, 180 = south, 270 = west; or in system-wide coordinates, heading is on the celestial sphere (defined by the ecliptic) &lt;br /&gt;
*'''Pitch''': Only shown, at right centre of screen, when close to planet (not shown in screen shot here). Shows elevation of ship direction over horizon. &lt;br /&gt;
*'''Target''': The navigation target, selectable by using the Left Mouse Button. You can set any body or ship as the point of reference with Ctrl+Left Mouse &lt;br /&gt;
**'''Distance to target''': Shows the distance to the selected object. The unit is km for shorter distances and AU for large.   &lt;br /&gt;
*'''Speed lines''': A visual aid showing the direction and speed of motion. &lt;br /&gt;
*'''Fuel reserve''': The&amp;amp;nbsp;% amount of fuel (propellant really) the tanks contain. You can refill it during flight using the Info View screen (F3). Spaceports do not refil your tanks automatically, but you can do it on the station lobby. Note that it only shows&amp;amp;nbsp;%, but your actual deltaV can be more since you continuously expel propellant, so your craft becomes lighter. &lt;br /&gt;
*'''Scanner''': Scanner display which shows nearby contacts. Only works if the ship has a Scanner equipped. This area also shows any messages you receive, like completion or failure of a mission for example. &lt;br /&gt;
*'''Dashboard:''' &lt;br /&gt;
Note: Parts of this section are outdated because of the ongoing UI rewrite.&lt;br /&gt;
**'''Date, Time and time acceleration controls''':&amp;lt;br/&amp;gt; [[File:Manual flight ui 02 time.png|RTENOTITLE]] &lt;br /&gt;
***Shows the current date and time. &lt;br /&gt;
***The Pause, Play, and Fast Forward buttons can be used to speed up time to shorten long trips. Or to wait for better missions or ships on a station. Maximum level of time acceleration might be restricted, especially in the vicinity of stations or planets. &lt;br /&gt;
***This restriction could be overridden by holding ctrl when activating it. Use this with caution, because it could easily wreck your ship.   &lt;br /&gt;
**'''Screens''':&amp;lt;br/&amp;gt; [[File:Manual flight ui 03 screens.png|RTENOTITLE]] &lt;br /&gt;
***These buttons provide access to certain screens like Info View or Maps. You can also use the corresponding F-keys to access them. From left to right: &lt;br /&gt;
***'''View''' (F1): Switches between internal and external views. You can switch back to these views from any other screen using this button or key. &lt;br /&gt;
***'''Maps''' (F2): Sector and System Map and System information screens. You can plan your trip here. &lt;br /&gt;
***'''Info''' (F3): Information screens, about the ship, the player, missions, cargo and crew. &lt;br /&gt;
***'''Comms, Station screen''' (F4): Opens Station Screen while docked to a spaceport. &lt;br /&gt;
****There are six attitude (ship facing) options meant for orbital operations: &lt;br /&gt;
*****Prograde/retrograde: faces the ship in/opposite the direction that you are traveling (changes the height of the orbit) &lt;br /&gt;
*****Normal/anti-normal: faces the ship in the direction [anti-]normal to your orbital plane (changes the orbit inclination) &lt;br /&gt;
*****Radially in/radially out: faces the ship toward/away from the orbited body   &lt;br /&gt;
****If the ship has an autopilot installed, there are also options for automatically flying the ship into a low/medium/high orbit, flying to the vicinity of the navigation target, and flying to the navigation target and docking.     &lt;br /&gt;
**'''Controls''':&amp;lt;br/&amp;gt; [[File:Manual flight ui 04 controls.png|RTENOTITLE]] &lt;br /&gt;
***These are flight related controls, corresponding F-keys could be used also. &lt;br /&gt;
***'''Flight Mode''' (F5): Switches between ''Set Speed'' and ''Manual'' flight mode.&amp;lt;br/&amp;gt; Also switches off the autopilot or could be used to undock or take off. &lt;br /&gt;
***'''Landing gear''' (F6): Rises or lowers the landing gear (undercarriage). &lt;br /&gt;
***'''Hyperdrive''' (F7): Engages hyperdrive. Needs a reachable hyperspace target selected on the Sector Map, and enough fuel for the trip. If it is crossed out, then you are in the hyperperspace limit zone, and jumping is illegal. You need to fly far enough from the station, or the police will chase you down. &lt;br /&gt;
***'''Low Thrust''' (F8): Sets the percentage of low thrust (Thrusting while holding Left Shift) &lt;br /&gt;
***It also displays the desired speed in Set Speed flight mode. On this image it shows the flight mode, which is set to manual. &lt;br /&gt;
***The small '''circular button''' next to the flight mode display show the status of the rotation damping. &lt;br /&gt;
***The '''[!]''' next to the rotation damping indicator shows your alert status. &lt;br /&gt;
***[[File:Manual flight ui 05 controls.png|RTENOTITLE]]&amp;lt;br/&amp;gt; These are controls for Scanner mode, Missiles and equipment (ECM) and Messages respectively.&lt;br /&gt;
&lt;br /&gt;
===Combat===&lt;br /&gt;
Combat in Pioneer is quite straightforward right now. You can buy Pulse cannons or Plasma accelerators of different power and fire rate, if your ship has mount for them. Some ships have a rear mount too. Cannons generate heat when fired, and they need some time to cool down. They can not be fired if they are overheating.&lt;br /&gt;
&lt;br /&gt;
You can also buy several types of missiles, which can be fired using the '''M''' key, if you have a combat target. An ECM can provide protection against missiles by overloading their guidance.&lt;br /&gt;
&lt;br /&gt;
You can target any ship as combat target, using your '''Left Mouse Button'''(which doesn't change the Navigation target). The ship's computer displays the speed of the ship relative to your vessel, and it's distance. There's also a lead indicator, a little cross which shows the predicted location of the target. This is the spot where the ship will be in theory based on it's speed and direction, when the projectiles reach that distance. It's harder than that though, since no sane enemy will fly in a straight line at a constant speed. You shouldn't do that either, and this is where your maneuvering thrusters can be very useful.&lt;br /&gt;
&lt;br /&gt;
Ship durability is determined by it's hull's mass. Lighter ships can take less damage, but they are more maneuverable generally, then a behemoth transport, which might withstand sever punishing before giving in. You can repair any damage you suffer on spaceports, but it will cost you.&lt;br /&gt;
&lt;br /&gt;
There are several additional equipment that can increase your chances in a firefight (and make your life harder if your opponent has them):&lt;br /&gt;
* '''ECM''': Electronic countermeasure against missiles. The Advanced ECM provides protection against more sophisticated missiles.&lt;br /&gt;
* '''Hull Auto-repair system''': As the name implies, it slowly repairs any damage your ship took. It weights 40t, so smaller ships can not have it.&lt;br /&gt;
* '''Hypercloud Analyzer''': You can get readings from a hyperspace cloud remnant, like destination and arrival date. It's useful if you need to follow somebody.&lt;br /&gt;
* '''Laser Cooling Booster''': Speeds up the cooling of cannons, so continuous firing can be maintained longer.&lt;br /&gt;
* '''Scanner''': A sensor system that shows the ships and objects around you. A form of radar basically.&lt;br /&gt;
* '''Radar Mapper''': Provides additional information about the combat target, like the type of ship, mass, condition among others.&lt;br /&gt;
* '''Shield Generator''': Projects a protective screen around your ship, which can take a certain amount of damage before collapsing. It recharges slowly over time. You can mount several Shield Generator to increase its power.&lt;br /&gt;
* '''Shield Energy Booster''': Increases the effectiveness of the shields.&lt;br /&gt;
&lt;br /&gt;
===Flight controls ===&lt;br /&gt;
A brief summary of flight controls. A more detailed list can be found at [[Keyboard and mouse controls]].&lt;br /&gt;
&lt;br /&gt;
*'''Orientation''':&lt;br /&gt;
** '''W, S''': Pitch&lt;br /&gt;
** '''A, D''': Yaw&lt;br /&gt;
** '''Q, E''': Roll&lt;br /&gt;
** '''P''': Kill rotation&lt;br /&gt;
** '''R''': toggle rotation damping&lt;br /&gt;
** '''Right mouse button''': hold to activate mouse control&lt;br /&gt;
*'''Movement''':&lt;br /&gt;
** '''I, K''': Forward and backward thrust&lt;br /&gt;
** '''J, L''': Side thrust&lt;br /&gt;
** '''U, O''': Up and down thrust&lt;br /&gt;
* '''Left Shift''': use lower thrust&lt;br /&gt;
* '''F8''' : Set low thrust percentage&lt;br /&gt;
&lt;br /&gt;
*'''F5''': change flight mode, or undock, takeoff&lt;br /&gt;
** '''Manual flight''': everything is manual&lt;br /&gt;
** '''Set Speed Mode''': the ship tries to maintain the set speed in the direction the ship is looking. Using the thrusters override it temporarily&lt;br /&gt;
***'''Return''': Increase speed&lt;br /&gt;
*** '''Right Shift''': Decrease speed&lt;br /&gt;
*'''F6''': toggle landing gear&lt;br /&gt;
*'''F7''': Engage hyperdrive&lt;br /&gt;
*'''Weapons''':&lt;br /&gt;
** '''Space''': Fire cannon&lt;br /&gt;
** '''M''': Fire missile&lt;br /&gt;
*'''View''':&lt;br /&gt;
**'''F1''': Cycles trough internal, external and sideral views. External rotates with your ship, sideral doesn't.&lt;br /&gt;
**'''Numpad 2 4 6 8 and 1 3''': Rotate the the external views.&lt;br /&gt;
**'''Numapad + -''': Zoom external views.&lt;br /&gt;
**'''Numpad /''': Reset view.&lt;br /&gt;
**'''Internal views''':&lt;br /&gt;
***'''8 2''': Front and rear view. You can shot backwards in rear view if you have a weapon installed on that mount.&lt;br /&gt;
***'''4 6''': Left and right view.&lt;br /&gt;
***'''9 3''': Top and bottom view.&lt;br /&gt;
&lt;br /&gt;
==Map (F2)==&lt;br /&gt;
This is where navigation takes place. You can open the Map view with the F2 key or the button on the dashboard. &lt;br /&gt;
[[File:Manual_map_buttons.png|left]]&lt;br /&gt;
There are several maps you can use.&amp;lt;br/&amp;gt; You can reach them by using their F-key, or the button on the right side of the dashboard. If you come back to the map view you will return to the map screen you were at when you switched to another view. Orbital Map and System info shows the information of the system which is selected on the Sector map.&lt;br /&gt;
===Sector Map (F5)===&lt;br /&gt;
[[File:Manual_map_sector_01.png|right|600px]]&lt;br /&gt;
[[File:Manual_map_sector_02.png|right|600px]]&lt;br /&gt;
&lt;br /&gt;
The sector map shows the star systems in the galaxy, and you can plot your hyperspace route here, or you can just hunt for interesting systems for later visits. Every system is indicated by a sphere. Its colour indicates the primary star type. You can select a system by clicking on it. If it's a system with multiple stars, you can cycle trough them by clicking on the system again, or you can select it on the System Info screen.&lt;br /&gt;
&lt;br /&gt;
The map is divided to 8 light year cubes called sectors. Each sector has a coordinate on each axis; the origin (0,0,0) is Sol. The galaxy is not a flat disk, you can travel quite far on all three axes before you reach the edge of it.&lt;br /&gt;
'''Map view UI:'''&lt;br /&gt;
*'''Current system''': The system you are currently in, with sector coordinates and a brief info about it. The button next to it centers the view on it.&lt;br /&gt;
*'''Hyperspace target''': The system selected as hyperspace target. Shows the coordinates, distance, fuel and travel time needed to reach it, and a brief info about it. It can be locked with Space bar, that way it stays as target even if another system is selected.&lt;br /&gt;
*'''Selected system''': Shows the same info as Hyperspace target if that's not locked. If locked, it shows the same info for the selected system. Useful for system comparison or travel planning.&lt;br /&gt;
*'''Map view settings''':&lt;br /&gt;
**'''Draw vertical lines''': draws a vertical line from the stars in range to the plane of the map to show the height relative to that plane. Clarifies system positions a bit.&lt;br /&gt;
**'''Label out-of-range systems''': Toggles label display for systems that are out of range. The map only shows labels for systems in range by default, so it's a useful option if you look for a specific system for example.&lt;br /&gt;
**'''Label uninhabited systems''': Toggles label display for systems that are uninhabited (no settlements, spaceports).&lt;br /&gt;
*'''Hyperspace range''': the map draws a transparent sphere to show which systems are in jump range. Jump range depends on hyperdrive class, fuel on board and the total mass of the ship.&lt;br /&gt;
*'''View position''': On the lower left corner, distance and coordinate data are displayed regarding to the current view.&lt;br /&gt;
&lt;br /&gt;
'''Map controls:'''&lt;br /&gt;
*'''Translation''': You can move around on the sector map using the '''arrow keys''' and '''Page Up''' and '''Page Down''' for vertical (forward/backward) movement. Movement is based on the view rotation.&lt;br /&gt;
*'''Rotation''': The view can be rotated with the '''W A S D''' keys, or with holding the '''Right Mouse button'''.&lt;br /&gt;
*'''Zoom''': You can zoom with the '''+''' and '''-''' keys, or with the '''Mouse wheel''', or using the two buttons on the top right.&lt;br /&gt;
*'''Faster controls''': Holding '''Shift''' speeds up movement and zoom. Use '''Right Shift''' for smaller speedup and '''Left Shift''' for quite fast movement.&lt;br /&gt;
*'''Selecting system''': Moving around on the map will automatically select the system closest to the center of the view. You can also select any system with the mouse.&lt;br /&gt;
**'''Selecting another star''' In a system with multiple stars (Binary or tertiary systems), you can cycle trough each star by clicking on the system again until you find the one you want to travel to.&lt;br /&gt;
**'''Lock selection''': You can lock your selection as the hyperspace target with the '''Space bar'''. This allows for selecting another system to plan a route, or could be useful for comparing systems.&lt;br /&gt;
**'''Center''': Pressing '''C''' centers the view on the system you are in. '''G''' centers on Selected system and '''H''' centers on the Hyperspace target.&lt;br /&gt;
*'''Reset view''': '''R''' resets view rotation, and zoom.&lt;br /&gt;
*'''Search''': You can type in the name of the system to the Search field on the lower right and it will select the system if it can be found. Note that it doesn't search the entire galaxy, only in a few tens of sectors range. You can also enter coordinates to move the map to any area.&lt;br /&gt;
*'''Tab''': Switches the left side info panel to faction filter.&lt;br /&gt;
'''Zooming out far'''&lt;br /&gt;
&lt;br /&gt;
Zooming out far switches to an overview that only shows color-coded dots for systems based on faction, and brings up the faction filter to the right where you can hide any faction. Map controls are the same as before.&lt;br /&gt;
&lt;br /&gt;
===Orbital map (F6)===&lt;br /&gt;
[[File:Manual_map_orbit_01.png|right|600px]]&lt;br /&gt;
&lt;br /&gt;
You can switch to the Orbital map using F6. It shows the to-scale orbital map of the star system selected on the Sector map. It is useful for in-system navigation. It shows your current position and your course of movement, and the orbit of every body (star, planet, moon, space-station) in the system.&lt;br /&gt;
&lt;br /&gt;
'''Controls''':&lt;br /&gt;
Controls of the orbital map are a bit different from the Sector map. &lt;br /&gt;
*'''Selection''': You can select any orbital body using your '''Left Mouse button'''.&lt;br /&gt;
*'''Targeting''': Any body can be targeted by holding '''Shift''' while selecting the body.&lt;br /&gt;
*'''Translation''':The view is always centered on the body selected. You can't move the view.&lt;br /&gt;
*'''Rotation''': You can rotate either by holding the '''Middle mouse button''', or by using Left Mouse Button on the rotation icon&lt;br /&gt;
*'''Zoom''': You can use the '''Mouse Wheel''' or the buttons on the top right for zooming. Shift accelerates zoom similar to the sector view.&lt;br /&gt;
*'''Time controls''': You can use these buttons to check the position of the bodies in the system (including your ship) in any given time. The button in the center resets it to the current time. This is useful for planning a flight. The set time is shown above the current time on the left.&lt;br /&gt;
&lt;br /&gt;
The Orbital Map shows your position and course in the system, relative to your reference body, be it a stable orbit or an escape trajectory. You can use this to fine-tune your path while you are traveling to your destination for example. Or you can just check if you managed to achieve a stable orbit. &lt;br /&gt;
&lt;br /&gt;
Time controls work on this too, you can check where you will be at any given time. Note that this course display might change when you switch reference bodies, for instance when you get close to a planet.&lt;br /&gt;
&lt;br /&gt;
===System info (F7)===&lt;br /&gt;
[[File:Manual_map_info.gif|right|600px]]&lt;br /&gt;
This screen shows detailed info on the system. If the system has multiple stars, you can select which one you want to be the hyperspace destination, by clicking on it.&lt;br /&gt;
&lt;br /&gt;
F7 switches between these views: &lt;br /&gt;
&lt;br /&gt;
*'''Planetary info''': Shows a general system description. Hovering over any body with the mouse displays more detailed information, like orbital parameters, temperature, atmosphere composition. It also shows the star-ports on the surface of the body. Bodies that have settlement are circled for easier spotting. In systems with multiple stars, the one currently selected as hyper jump target is indicated with a square centered on it.&lt;br /&gt;
&lt;br /&gt;
*'''Economics info''': Shows exports, imports of the system, and the illegal goods. Exported items are cheap, imported items are expensive, so this is a crucial screen for trading. Illegal goods can only be bought or sold at black market retailers found on the star-port BBS. Be careful though, some retailers are undercover cops who will fine you if you attempt to make business with them. Illegal items are based on factions. If you have selected a system other than the one you are currently in, it will compare imports/exports between them and mark commodities of special interest with Green (best, e.g. major export in system A is a major import in B), or white (Major/Minor export in A is a Minor/Major import in B). For Illegal goods only gray or red is used to show if it is legal in one of the systems but illegal in the other.&lt;br /&gt;
&lt;br /&gt;
*'''Demographics''': Shows information on the system, like population, government type and faction.&lt;br /&gt;
&lt;br /&gt;
===Galaxy map (F8)===&lt;br /&gt;
The galaxy map shows an overview of the whole galaxy, highlighting your current position. Brighter areas generally have more stars than darker areas.&lt;br /&gt;
&lt;br /&gt;
==Info View (F3)==&lt;br /&gt;
You can access various information by pressing F3, or the Info View button on the dashboard.&lt;br /&gt;
===Ship Information===&lt;br /&gt;
[[File:Manual_infoview_01_ship.png|600px|right]]&lt;br /&gt;
[[File:Manual_infoview_02_commander.png|600px|right]]&lt;br /&gt;
[[File:Manual_infoview_03_cargo.png|600px|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Shows information regarding your spaceship&lt;br /&gt;
*'''Hyperdrive &amp;amp; Hyperspace range'''&lt;br /&gt;
The class of hyperdrive installed on the ship. Higher class hyperdrives are heavier, but can jump to greater distances. Common hyperdrives consume Hydrogen, which can be bought on stations, or could be scooped from the atmosphere of gas giants, if the ship has a Fuel Scoop installed. &lt;br /&gt;
&lt;br /&gt;
Military Drives are generally faster, but they use Military fuel, which is more expensive and harder to obtain. Military drives turn fuel into Radioactives that you need to get rid of.&lt;br /&gt;
&lt;br /&gt;
Current Hyperspace range is displayed based on current ship mass and the amount of fuel in the cargo hold. You can see the theoretical maximum range shown in brackets. This changes as you fill your ship with cargo or fuel.&lt;br /&gt;
&lt;br /&gt;
*'''Mass data'''&lt;br /&gt;
** Weight empty: Dry mass of the ship, without any cargo or propellant.&lt;br /&gt;
** Capacity used: Used and available cargo and equipment capacity of the ship.&lt;br /&gt;
** Fuel weight: Amount of propellant, and the maximum capacity of the tanks. Propellant is Hydrogen. Tanks are refilled upon docking or landing on a station, if the player has enough money ($1-6 usually). It's possible to buy extra Hydrogen in the Commodity Market for manual in-flight refill.&lt;br /&gt;
** All-up weight: Sum of hull, cargo and propellant mass.&lt;br /&gt;
*'''Weapons'''&lt;br /&gt;
Cannons installed on front and rear facing hard-point.&lt;br /&gt;
*'''Fuel &amp;amp; Delta-v'''&lt;br /&gt;
Propellant and delta-v reserves.&lt;br /&gt;
Delta-v shows, how much speed change can be done using the propellant in the tanks. Generally, more delta-v means faster in-system travel.&lt;br /&gt;
&lt;br /&gt;
For a brachistochrone transfer (accelerating halfway, then decelerating) you can use up half of the delta-v. If you exceed that, then you will be unable to stop your ship. It's useful to save a good amount of delta-v (about 500-1000 km/s) for course corrections and landing.&lt;br /&gt;
&lt;br /&gt;
Delta-v display doesn't take additional Hydrogen in the cargo hold into account, so refueling with Hydrogen can increase it. Ship mass can also change delta-v capability dramatically.&lt;br /&gt;
&lt;br /&gt;
You can [[Hydrogen_scoop|scoop Hydrogen]] from the atmosphere of a gas giant, if you have Fuel Scoop installed.&lt;br /&gt;
&lt;br /&gt;
You can mine water in the field, if you have a Mining Blaster and Cargo scoop. You need to find a planet that has water (a smaller moon or dwarf planet is easier to mine), shoot the surface and collect any water that's blasted out from it. &lt;br /&gt;
*'''Accelerations'''&lt;br /&gt;
Shows the acceleration the ship is capable of with it's current load. Displayed both in m/s^2 and Gee. A ship with higher acceleration will feel faster, especially around station. It affects travel times less then delta-v.&lt;br /&gt;
&lt;br /&gt;
If Up acceleration is higher then the gravity of the planet, then the ship might not be able to take off or land, especially using the autopilot.&lt;br /&gt;
&lt;br /&gt;
Acceleration increases while the ship uses its propellant, and can be further increased by jettisoning cargo. Selling cargo or equipment can help too.&lt;br /&gt;
&lt;br /&gt;
*'''Crew'''&lt;br /&gt;
Minimum crew shows the needed head count to fly the ship (currently ignored). Crew cabin shows the crew capacity of the craft. Crew are useful in multiple ways, but you have to pay them weekly.&lt;br /&gt;
&lt;br /&gt;
Crew can control the ship, engage the enemy or repair damages. Each crew member has strengths and weaknesses, their abilities improve by time.&lt;br /&gt;
*'''Equipment'''&lt;br /&gt;
Shows the list of installed equipment. These equipments enhance your ship's capabilities, and can even add functions to it.&lt;br /&gt;
&lt;br /&gt;
===Personal Information===&lt;br /&gt;
&lt;br /&gt;
Shows information about your character.&lt;br /&gt;
Currently you see your combat rating, reputation standing, and rank (however, the rank can not be changed in the game yet, and doesn't influence the game either).&lt;br /&gt;
&lt;br /&gt;
Reputation affects mission availability, and can be increased by completing missions or donating to charities. Failed missions decrease your reputation. &lt;br /&gt;
&lt;br /&gt;
You can also change your name, gender and face.&lt;br /&gt;
&lt;br /&gt;
===Economy &amp;amp; Trade===&lt;br /&gt;
&lt;br /&gt;
Shows the contents of the cargo hold in detail, and allows in-flight refueling.&lt;br /&gt;
You can find the list of cargo in your hold, and you can jettison any of them here while in flight. If you have Cargo Scoop installed, you can even retrieve the jettisoned cargo.&lt;br /&gt;
&lt;br /&gt;
Refueling transfers 1t of Hydrogen, if available, to the propellant tanks.&lt;br /&gt;
Available and occupied passenger cabin space can be checked here too.&lt;br /&gt;
&lt;br /&gt;
===Missions===&lt;br /&gt;
[[File:Manual_infoview_04_missions.gif|600px|right]]&lt;br /&gt;
Shows information about accepted missions. You can check the destination and deadline here, and you can see additional information about each mission, using the More info... button on the right.&lt;br /&gt;
&lt;br /&gt;
You can find and take all kinds of missions on any star-port's BBS, but be sure to check if you and your ship is capable of completing it. Failing missions decrease your reputation, which makes it harder to find lucrative offers, so it will be harder to regain your reputation, so be cautious.&lt;br /&gt;
&lt;br /&gt;
===Crew Roster===&lt;br /&gt;
[[File:Manual_infoview_06_crew.gif|600px|right]]&lt;br /&gt;
You can access information about your crew. It shows the salary which you need to pay them weekly. If you can't pay for a while, they will get off on the next port, with some of your reputation.&lt;br /&gt;
&lt;br /&gt;
Some ships need multiple crew members on board even to fly it (this is ignored right now though), and they can perform several tasks, like piloting, engaging in combat or repairing the hull or failed equipment.&lt;br /&gt;
&lt;br /&gt;
== Station view (F4)==&lt;br /&gt;
[[File:Manual_station_bbs.png|600px|right]]&lt;br /&gt;
[[File:Manual_station_market.png|600px|right]]&lt;br /&gt;
Access this screen with F4 or the comms icon on the dash board, while you are docked to a space-port, be it a surface base or an orbital station.&lt;br /&gt;
All screens show the cargo and passenger capacity of your ship, your money and legal status in the footer.&lt;br /&gt;
&lt;br /&gt;
=== Lobby ===&lt;br /&gt;
It's a good idea to request launching clearance before taking off. The station dispatcher will stare at you until you get embarrassed and go about your business.&lt;br /&gt;
&lt;br /&gt;
=== Bulletin Board ===&lt;br /&gt;
&lt;br /&gt;
You will find missions of all sorts here on the BBS. Keep in mind that some might not be suited for your ship in terms of distance and deadline. Some missions are in-system, and will not require any hyperdrive, but will in turn pay less. You should check the system map even in this case, because planets might be in opposition on their courses and you end up traveling across the whole system which can take a while even with a high delta-v ship.&lt;br /&gt;
&lt;br /&gt;
Some missions are riskier, so it's always a good idea to ask if there will be any danger, so you can prepare properly, or avoid the mission altogether until you are better rigged for combat for example. &lt;br /&gt;
&lt;br /&gt;
Local hyperdrive maintenance companies offer their services here too. Old drives may start to misbehave, so if you don't want to strand yourself in the interstellar void, don't forget regular maintenance.&lt;br /&gt;
&lt;br /&gt;
Charities can also turn up from time to time, asking for money for their cases. Donating to them could increase your reputation.&lt;br /&gt;
&lt;br /&gt;
When you start a new game, you will not have any reputation, which must be earned by taking on missions (or donating to charities). You can see your current reputation standing in your personal Info view. Reputation affects what kind of missions you can take on. Completing a mission will increase your reputation, and opens up more job opportunities, and failure decreases it, narrowing the available mission after a while.&lt;br /&gt;
&lt;br /&gt;
Some stations have private black market goods dealers who trade in illegal goods, although some might be undercover police. &lt;br /&gt;
&lt;br /&gt;
You can also hire new crew members if you are in need. Make sure to have good candidates on the BBS before buying a new ship. You can make them sit a test to show their abilities (though those doesn't affect the game right now), and you can negotiate their pay too.&lt;br /&gt;
&lt;br /&gt;
If no mission suits you, then something new might pop up over time. Missions that require better reputation are grayed out, and the advertiser won't talk with you much.&lt;br /&gt;
&lt;br /&gt;
=== Commodity Market ===&lt;br /&gt;
&lt;br /&gt;
You can buy and sell commodities here. Keep in mind, that a heavy ship will have shorter hyperspace range. You can also buy Hydrogen or Military fuel for your hyperdrive here.&lt;br /&gt;
You just need to click on the name of the commodity on the left side to buy 1t of it. The contents of your cargo hold are on the right side, clicking on any item will sell 1t of it. Buy and sell prices are the same right now.&lt;br /&gt;
&lt;br /&gt;
Prices depend on the type of the system. Agricultural systems will pay a lot for farm machinery for example, and you can buy cheap foodstuff. An industrial system on the other hand sells cheap machinery, and pays good money for food. You need to scout out lucrative routes for yourself if you want to turn profit.&lt;br /&gt;
&lt;br /&gt;
Illegal goods can't be found on the market, you need to look for a black market retailer on the BBS. Note that one item can be completely legal in one system, but illegal in another.&lt;br /&gt;
&lt;br /&gt;
=== Shipyard ===&lt;br /&gt;
[[File:Manual_station_shipmarket.png|600px|right]]&lt;br /&gt;
You can buy ships here, trading in your current ship with all of its additional equipment or cargo.&lt;br /&gt;
You can check out the capabilities and stats of the ships offered for purchase, much like the information you have on the Info view screen. The ''After Trade-in'' is the final price you need to pay, and if it's negative, it means your current ship worths more then the one you are looking at. Trade-in value is about the half of the list value of any ship.&lt;br /&gt;
&lt;br /&gt;
Ships are traded continuously, so you just need to wait a few hours if there's nothing interesting there, and new vessels will turn up.&lt;br /&gt;
&lt;br /&gt;
=== Equipment Market ===&lt;br /&gt;
Buy/sell equipment for your ship. Equipment market works similar to the commodities market. Left side shows what's available on the station, right side shows, what's installed on your ship.&lt;br /&gt;
Each equipment has a certain mass, so they occupy space on the ship much like cargo. heavier ships are harder to maneuver, and their delta-v and hyperspace range also decreases. You can't remove any equipment while you are flying, except for using missiles.&lt;br /&gt;
Equipments add extra capabilities to your ship, like radar and targeting information, autopilot, cargo and fuel scooping ability. You can buy weapons, shields and some upgrades to these too.&lt;br /&gt;
&lt;br /&gt;
=== Ship Repairs ===&lt;br /&gt;
Maintaining your ship is important, unless you want to be stranded in an uninhabited system or interstellar space due yo your hyperdrive failing.&lt;br /&gt;
You can repair your hull here too, if needed.&lt;br /&gt;
&lt;br /&gt;
=== Police ===&lt;br /&gt;
If you have any fines you need to pay them or else risk getting shot down by some restless police officer.&lt;br /&gt;
You can get in trouble for trading with illegal goods, or even if you accidentally fire your weapon near any settlement. In the later case it's better to run, then pay the fine later.&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=File:00_main_menu.png&amp;diff=4515</id>
		<title>File:00 main menu.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=File:00_main_menu.png&amp;diff=4515"/>
		<updated>2023-09-17T09:26:34Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: Impaktor uploaded a new version of File:00 main menu.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=File:00_main_menu.png&amp;diff=4514</id>
		<title>File:00 main menu.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=File:00_main_menu.png&amp;diff=4514"/>
		<updated>2023-09-17T09:18:45Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: Impaktor uploaded a new version of File:00 main menu.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Manual&amp;diff=4513</id>
		<title>Manual</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Manual&amp;diff=4513"/>
		<updated>2023-09-17T09:12:31Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: Undo revision 4512 by Impaktor (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pioneer is a space adventure game set in the Milky-way 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;
This reference manual provides a brief overview of the game.&lt;br /&gt;
&lt;br /&gt;
This manual is a good bit out of date, but is slowly being improved.&lt;br /&gt;
&lt;br /&gt;
== Main menu ==&lt;br /&gt;
[[File:main_menu_2023.jpg|right|600px]]&lt;br /&gt;
* '''Continue Game''': Loads the game you saved previously using quick-save (Ctrl+F9).&lt;br /&gt;
* '''Start on Mars''': You start the game in the Solar System, on Mars, at Cydonia Spaceport with an outfitted Coronatrix. This is considered an easy start. Sol is the capital of the Solar Federation.&lt;br /&gt;
* '''Start at New Hope''': You start in Epsilon Eridani, the capital of the Commonwealth of Independent Worlds. Your [[Pumpkinseed]] stands on Itzalean Spaceport on New Hope. This is a bit more difficult starting point than Earth. Itzalean is an area with frequent solar eclipses.&lt;br /&gt;
* '''Start at Barnard's Star''': You start on the dock of High Security Prison Tranquility, orbiting Barnard's Star, not far from Sol. You have a poorly outfitted [[Xylophis]], so you can consider it a difficult start.&lt;br /&gt;
* '''Load Game''': You can load previously saved games here. NOTE: Saves created with older versions of Pioneer might not load. This usually happens after a major update to the game.&lt;br /&gt;
* '''Options''': Opens Pioneer's [[Settings Menu]]. From here you can set up graphics, controls, audio volumes or language, for example.&lt;br /&gt;
* '''Quit''': Exit the game.&lt;br /&gt;
* '''Build''': Shown in the lower-right corner, this number is the build of the game you are running. Basically a version number, useful for reporting bugs.&lt;br /&gt;
&lt;br /&gt;
==Flight==&lt;br /&gt;
Flight physics in Pioneer is Newtonian, which means there's no arbitrary limit to speed, orientation or position. A ship doesn't slow down in space, until it actively thrusts in the opposite direction it's flying. Or hits something. Or encounters a force, like gravity. Ship acceleration depends on ship mass and engine thrust. Because there's no friction in space, you can reach very high speeds compared to what we are used to here on Earth, up to ''thousands'' of kilometers per second.&lt;br /&gt;
&lt;br /&gt;
In space, speed only has meaning relative to some point of reference. In Pioneer, this reference body is selected automatically, and is whichever star, planet, or moon currently exerts gravitational force on you. &lt;br /&gt;
&lt;br /&gt;
There's an assisted flight mode which compensates for the frictionless motion of your ship in space, called Set Speed mode. It tries to maintain a set speed in the direction the ship is facing, using maneuvering thrusters. The effectiveness of this aid varies ship to ship, and the mass of your cargo load will also have an effect.&lt;br /&gt;
&lt;br /&gt;
Compared to today's spacecraft, ships in Pioneer are quite powerful in terms of acceleration, cargo and delta-v capacity. It's entirely possible to travel to the edge of a star system, even with the smallest shuttle. It will just take significantly more time.&lt;br /&gt;
&lt;br /&gt;
Gravity is simulated on a two-body level. You can orbit any planet or moon, but only the closest body's gravity affects your ship. This is the same body you measure your speed to. This also means that you have to take the planets gravity into account when you are flying close to it, landing, or taking off. You can also use this to your advantage to alter your course using less fuel for example.&lt;br /&gt;
&lt;br /&gt;
Distances are realistic, so space travel can take several days, or even weeks, in a large system. Time can be accelerated up to 10,000 times to shorten the game time for the player. This doesn't correspond with any device or technology in the game universe, it's just a UI/Gameplay feature.&lt;br /&gt;
&lt;br /&gt;
=== Flight UI ===&lt;br /&gt;
&lt;br /&gt;
Beginners are strongly recommended a look at the [http://pioneerwiki.com/wiki/Basic_flight Basic flight] article, to learn how to control the ship.&lt;br /&gt;
&lt;br /&gt;
When you pick your starting point, you will get behind the controls of your ship. [[File:Basic_flight_ui_2023.jpg|right|600px|Basic_flight_ui_2023.jpg]] There are several things on the flight UI:&lt;br /&gt;
&lt;br /&gt;
*'''Prograde marker:''' The direction you are flying relative to the point of reference, &lt;br /&gt;
*'''Speed relative to reference body''': The speed of the ship relative to the point of reference (''&amp;quot;System&amp;quot;'' in this example). &lt;br /&gt;
*'''Prograde marker &amp;amp; speed (target)''': Direction and speed of the ship relative to the target (which itself moves around a star for example) &lt;br /&gt;
*'''Heading''': Only shown, top centre of screen, when close to planet (not shown in screen shot here). Can switch reference system by clicking it to be either in planetary coordinates, heading 0 = north, 90 = east, 180 = south, 270 = west; or in system-wide coordinates, heading is on the celestial sphere (defined by the ecliptic) &lt;br /&gt;
*'''Pitch''': Only shown, at right centre of screen, when close to planet (not shown in screen shot here). Shows elevation of ship direction over horizon. &lt;br /&gt;
*'''Target''': The navigation target, selectable by using the Left Mouse Button. You can set any body or ship as the point of reference with Ctrl+Left Mouse &lt;br /&gt;
**'''Distance to target''': Shows the distance to the selected object. The unit is km for shorter distances and AU for large.   &lt;br /&gt;
*'''Speed lines''': A visual aid showing the direction and speed of motion. &lt;br /&gt;
*'''Fuel reserve''': The&amp;amp;nbsp;% amount of fuel (propellant really) the tanks contain. You can refill it during flight using the Info View screen (F3). Spaceports do not refil your tanks automatically, but you can do it on the station lobby. Note that it only shows&amp;amp;nbsp;%, but your actual deltaV can be more since you continuously expel propellant, so your craft becomes lighter. &lt;br /&gt;
*'''Scanner''': Scanner display which shows nearby contacts. Only works if the ship has a Scanner equipped. This area also shows any messages you receive, like completion or failure of a mission for example. &lt;br /&gt;
*'''Dashboard:''' &lt;br /&gt;
Note: Parts of this section are outdated because of the ongoing UI rewrite.&lt;br /&gt;
**'''Date, Time and time acceleration controls''':&amp;lt;br/&amp;gt; [[File:Manual flight ui 02 time.png|RTENOTITLE]] &lt;br /&gt;
***Shows the current date and time. &lt;br /&gt;
***The Pause, Play, and Fast Forward buttons can be used to speed up time to shorten long trips. Or to wait for better missions or ships on a station. Maximum level of time acceleration might be restricted, especially in the vicinity of stations or planets. &lt;br /&gt;
***This restriction could be overridden by holding ctrl when activating it. Use this with caution, because it could easily wreck your ship.   &lt;br /&gt;
**'''Screens''':&amp;lt;br/&amp;gt; [[File:Manual flight ui 03 screens.png|RTENOTITLE]] &lt;br /&gt;
***These buttons provide access to certain screens like Info View or Maps. You can also use the corresponding F-keys to access them. From left to right: &lt;br /&gt;
***'''View''' (F1): Switches between internal and external views. You can switch back to these views from any other screen using this button or key. &lt;br /&gt;
***'''Maps''' (F2): Sector and System Map and System information screens. You can plan your trip here. &lt;br /&gt;
***'''Info''' (F3): Information screens, about the ship, the player, missions, cargo and crew. &lt;br /&gt;
***'''Comms, Station screen''' (F4): Opens Station Screen while docked to a spaceport. &lt;br /&gt;
****There are six attitude (ship facing) options meant for orbital operations: &lt;br /&gt;
*****Prograde/retrograde: faces the ship in/opposite the direction that you are traveling (changes the height of the orbit) &lt;br /&gt;
*****Normal/anti-normal: faces the ship in the direction [anti-]normal to your orbital plane (changes the orbit inclination) &lt;br /&gt;
*****Radially in/radially out: faces the ship toward/away from the orbited body   &lt;br /&gt;
****If the ship has an autopilot installed, there are also options for automatically flying the ship into a low/medium/high orbit, flying to the vicinity of the navigation target, and flying to the navigation target and docking.     &lt;br /&gt;
**'''Controls''':&amp;lt;br/&amp;gt; [[File:Manual flight ui 04 controls.png|RTENOTITLE]] &lt;br /&gt;
***These are flight related controls, corresponding F-keys could be used also. &lt;br /&gt;
***'''Flight Mode''' (F5): Switches between ''Set Speed'' and ''Manual'' flight mode.&amp;lt;br/&amp;gt; Also switches off the autopilot or could be used to undock or take off. &lt;br /&gt;
***'''Landing gear''' (F6): Rises or lowers the landing gear (undercarriage). &lt;br /&gt;
***'''Hyperdrive''' (F7): Engages hyperdrive. Needs a reachable hyperspace target selected on the Sector Map, and enough fuel for the trip. If it is crossed out, then you are in the hyperperspace limit zone, and jumping is illegal. You need to fly far enough from the station, or the police will chase you down. &lt;br /&gt;
***'''Low Thrust''' (F8): Sets the percentage of low thrust (Thrusting while holding Left Shift) &lt;br /&gt;
***It also displays the desired speed in Set Speed flight mode. On this image it shows the flight mode, which is set to manual. &lt;br /&gt;
***The small '''circular button''' next to the flight mode display show the status of the rotation damping. &lt;br /&gt;
***The '''[!]''' next to the rotation damping indicator shows your alert status. &lt;br /&gt;
***[[File:Manual flight ui 05 controls.png|RTENOTITLE]]&amp;lt;br/&amp;gt; These are controls for Scanner mode, Missiles and equipment (ECM) and Messages respectively.&lt;br /&gt;
&lt;br /&gt;
===Combat===&lt;br /&gt;
Combat in Pioneer is quite straightforward right now. You can buy Pulse cannons or Plasma accelerators of different power and fire rate, if your ship has mount for them. Some ships have a rear mount too. Cannons generate heat when fired, and they need some time to cool down. They can not be fired if they are overheating.&lt;br /&gt;
&lt;br /&gt;
You can also buy several types of missiles, which can be fired using the '''M''' key, if you have a combat target. An ECM can provide protection against missiles by overloading their guidance.&lt;br /&gt;
&lt;br /&gt;
You can target any ship as combat target, using your '''Left Mouse Button'''(which doesn't change the Navigation target). The ship's computer displays the speed of the ship relative to your vessel, and it's distance. There's also a lead indicator, a little cross which shows the predicted location of the target. This is the spot where the ship will be in theory based on it's speed and direction, when the projectiles reach that distance. It's harder than that though, since no sane enemy will fly in a straight line at a constant speed. You shouldn't do that either, and this is where your maneuvering thrusters can be very useful.&lt;br /&gt;
&lt;br /&gt;
Ship durability is determined by it's hull's mass. Lighter ships can take less damage, but they are more maneuverable generally, then a behemoth transport, which might withstand sever punishing before giving in. You can repair any damage you suffer on spaceports, but it will cost you.&lt;br /&gt;
&lt;br /&gt;
There are several additional equipment that can increase your chances in a firefight (and make your life harder if your opponent has them):&lt;br /&gt;
* '''ECM''': Electronic countermeasure against missiles. The Advanced ECM provides protection against more sophisticated missiles.&lt;br /&gt;
* '''Hull Auto-repair system''': As the name implies, it slowly repairs any damage your ship took. It weights 40t, so smaller ships can not have it.&lt;br /&gt;
* '''Hypercloud Analyzer''': You can get readings from a hyperspace cloud remnant, like destination and arrival date. It's useful if you need to follow somebody.&lt;br /&gt;
* '''Laser Cooling Booster''': Speeds up the cooling of cannons, so continuous firing can be maintained longer.&lt;br /&gt;
* '''Scanner''': A sensor system that shows the ships and objects around you. A form of radar basically.&lt;br /&gt;
* '''Radar Mapper''': Provides additional information about the combat target, like the type of ship, mass, condition among others.&lt;br /&gt;
* '''Shield Generator''': Projects a protective screen around your ship, which can take a certain amount of damage before collapsing. It recharges slowly over time. You can mount several Shield Generator to increase its power.&lt;br /&gt;
* '''Shield Energy Booster''': Increases the effectiveness of the shields.&lt;br /&gt;
&lt;br /&gt;
===Flight controls ===&lt;br /&gt;
A brief summary of flight controls. A more detailed list can be found at [[Keyboard and mouse controls]].&lt;br /&gt;
&lt;br /&gt;
*'''Orientation''':&lt;br /&gt;
** '''W, S''': Pitch&lt;br /&gt;
** '''A, D''': Yaw&lt;br /&gt;
** '''Q, E''': Roll&lt;br /&gt;
** '''P''': Kill rotation&lt;br /&gt;
** '''R''': toggle rotation damping&lt;br /&gt;
** '''Right mouse button''': hold to activate mouse control&lt;br /&gt;
*'''Movement''':&lt;br /&gt;
** '''I, K''': Forward and backward thrust&lt;br /&gt;
** '''J, L''': Side thrust&lt;br /&gt;
** '''U, O''': Up and down thrust&lt;br /&gt;
* '''Left Shift''': use lower thrust&lt;br /&gt;
* '''F8''' : Set low thrust percentage&lt;br /&gt;
&lt;br /&gt;
*'''F5''': change flight mode, or undock, takeoff&lt;br /&gt;
** '''Manual flight''': everything is manual&lt;br /&gt;
** '''Set Speed Mode''': the ship tries to maintain the set speed in the direction the ship is looking. Using the thrusters override it temporarily&lt;br /&gt;
***'''Return''': Increase speed&lt;br /&gt;
*** '''Right Shift''': Decrease speed&lt;br /&gt;
*'''F6''': toggle landing gear&lt;br /&gt;
*'''F7''': Engage hyperdrive&lt;br /&gt;
*'''Weapons''':&lt;br /&gt;
** '''Space''': Fire cannon&lt;br /&gt;
** '''M''': Fire missile&lt;br /&gt;
*'''View''':&lt;br /&gt;
**'''F1''': Cycles trough internal, external and sideral views. External rotates with your ship, sideral doesn't.&lt;br /&gt;
**'''Numpad 2 4 6 8 and 1 3''': Rotate the the external views.&lt;br /&gt;
**'''Numapad + -''': Zoom external views.&lt;br /&gt;
**'''Numpad /''': Reset view.&lt;br /&gt;
**'''Internal views''':&lt;br /&gt;
***'''8 2''': Front and rear view. You can shot backwards in rear view if you have a weapon installed on that mount.&lt;br /&gt;
***'''4 6''': Left and right view.&lt;br /&gt;
***'''9 3''': Top and bottom view.&lt;br /&gt;
&lt;br /&gt;
==Map (F2)==&lt;br /&gt;
This is where navigation takes place. You can open the Map view with the F2 key or the button on the dashboard. &lt;br /&gt;
[[File:Manual_map_buttons.png|left]]&lt;br /&gt;
There are several maps you can use.&amp;lt;br/&amp;gt; You can reach them by using their F-key, or the button on the right side of the dashboard. If you come back to the map view you will return to the map screen you were at when you switched to another view. Orbital Map and System info shows the information of the system which is selected on the Sector map.&lt;br /&gt;
===Sector Map (F5)===&lt;br /&gt;
[[File:Manual_map_sector_01.png|right|600px]]&lt;br /&gt;
[[File:Manual_map_sector_02.png|right|600px]]&lt;br /&gt;
&lt;br /&gt;
The sector map shows the star systems in the galaxy, and you can plot your hyperspace route here, or you can just hunt for interesting systems for later visits. Every system is indicated by a sphere. Its colour indicates the primary star type. You can select a system by clicking on it. If it's a system with multiple stars, you can cycle trough them by clicking on the system again, or you can select it on the System Info screen.&lt;br /&gt;
&lt;br /&gt;
The map is divided to 8 light year cubes called sectors. Each sector has a coordinate on each axis; the origin (0,0,0) is Sol. The galaxy is not a flat disk, you can travel quite far on all three axes before you reach the edge of it.&lt;br /&gt;
'''Map view UI:'''&lt;br /&gt;
*'''Current system''': The system you are currently in, with sector coordinates and a brief info about it. The button next to it centers the view on it.&lt;br /&gt;
*'''Hyperspace target''': The system selected as hyperspace target. Shows the coordinates, distance, fuel and travel time needed to reach it, and a brief info about it. It can be locked with Space bar, that way it stays as target even if another system is selected.&lt;br /&gt;
*'''Selected system''': Shows the same info as Hyperspace target if that's not locked. If locked, it shows the same info for the selected system. Useful for system comparison or travel planning.&lt;br /&gt;
*'''Map view settings''':&lt;br /&gt;
**'''Draw vertical lines''': draws a vertical line from the stars in range to the plane of the map to show the height relative to that plane. Clarifies system positions a bit.&lt;br /&gt;
**'''Label out-of-range systems''': Toggles label display for systems that are out of range. The map only shows labels for systems in range by default, so it's a useful option if you look for a specific system for example.&lt;br /&gt;
**'''Label uninhabited systems''': Toggles label display for systems that are uninhabited (no settlements, spaceports).&lt;br /&gt;
*'''Hyperspace range''': the map draws a transparent sphere to show which systems are in jump range. Jump range depends on hyperdrive class, fuel on board and the total mass of the ship.&lt;br /&gt;
*'''View position''': On the lower left corner, distance and coordinate data are displayed regarding to the current view.&lt;br /&gt;
&lt;br /&gt;
'''Map controls:'''&lt;br /&gt;
*'''Translation''': You can move around on the sector map using the '''arrow keys''' and '''Page Up''' and '''Page Down''' for vertical (forward/backward) movement. Movement is based on the view rotation.&lt;br /&gt;
*'''Rotation''': The view can be rotated with the '''W A S D''' keys, or with holding the '''Right Mouse button'''.&lt;br /&gt;
*'''Zoom''': You can zoom with the '''+''' and '''-''' keys, or with the '''Mouse wheel''', or using the two buttons on the top right.&lt;br /&gt;
*'''Faster controls''': Holding '''Shift''' speeds up movement and zoom. Use '''Right Shift''' for smaller speedup and '''Left Shift''' for quite fast movement.&lt;br /&gt;
*'''Selecting system''': Moving around on the map will automatically select the system closest to the center of the view. You can also select any system with the mouse.&lt;br /&gt;
**'''Selecting another star''' In a system with multiple stars (Binary or tertiary systems), you can cycle trough each star by clicking on the system again until you find the one you want to travel to.&lt;br /&gt;
**'''Lock selection''': You can lock your selection as the hyperspace target with the '''Space bar'''. This allows for selecting another system to plan a route, or could be useful for comparing systems.&lt;br /&gt;
**'''Center''': Pressing '''C''' centers the view on the system you are in. '''G''' centers on Selected system and '''H''' centers on the Hyperspace target.&lt;br /&gt;
*'''Reset view''': '''R''' resets view rotation, and zoom.&lt;br /&gt;
*'''Search''': You can type in the name of the system to the Search field on the lower right and it will select the system if it can be found. Note that it doesn't search the entire galaxy, only in a few tens of sectors range. You can also enter coordinates to move the map to any area.&lt;br /&gt;
*'''Tab''': Switches the left side info panel to faction filter.&lt;br /&gt;
'''Zooming out far'''&lt;br /&gt;
&lt;br /&gt;
Zooming out far switches to an overview that only shows color-coded dots for systems based on faction, and brings up the faction filter to the right where you can hide any faction. Map controls are the same as before.&lt;br /&gt;
&lt;br /&gt;
===Orbital map (F6)===&lt;br /&gt;
[[File:Manual_map_orbit_01.png|right|600px]]&lt;br /&gt;
&lt;br /&gt;
You can switch to the Orbital map using F6. It shows the to-scale orbital map of the star system selected on the Sector map. It is useful for in-system navigation. It shows your current position and your course of movement, and the orbit of every body (star, planet, moon, space-station) in the system.&lt;br /&gt;
&lt;br /&gt;
'''Controls''':&lt;br /&gt;
Controls of the orbital map are a bit different from the Sector map. &lt;br /&gt;
*'''Selection''': You can select any orbital body using your '''Left Mouse button'''.&lt;br /&gt;
*'''Targeting''': Any body can be targeted by holding '''Shift''' while selecting the body.&lt;br /&gt;
*'''Translation''':The view is always centered on the body selected. You can't move the view.&lt;br /&gt;
*'''Rotation''': You can rotate either by holding the '''Middle mouse button''', or by using Left Mouse Button on the rotation icon&lt;br /&gt;
*'''Zoom''': You can use the '''Mouse Wheel''' or the buttons on the top right for zooming. Shift accelerates zoom similar to the sector view.&lt;br /&gt;
*'''Time controls''': You can use these buttons to check the position of the bodies in the system (including your ship) in any given time. The button in the center resets it to the current time. This is useful for planning a flight. The set time is shown above the current time on the left.&lt;br /&gt;
&lt;br /&gt;
The Orbital Map shows your position and course in the system, relative to your reference body, be it a stable orbit or an escape trajectory. You can use this to fine-tune your path while you are traveling to your destination for example. Or you can just check if you managed to achieve a stable orbit. &lt;br /&gt;
&lt;br /&gt;
Time controls work on this too, you can check where you will be at any given time. Note that this course display might change when you switch reference bodies, for instance when you get close to a planet.&lt;br /&gt;
&lt;br /&gt;
===System info (F7)===&lt;br /&gt;
[[File:Manual_map_info.gif|right|600px]]&lt;br /&gt;
This screen shows detailed info on the system. If the system has multiple stars, you can select which one you want to be the hyperspace destination, by clicking on it.&lt;br /&gt;
&lt;br /&gt;
F7 switches between these views: &lt;br /&gt;
&lt;br /&gt;
*'''Planetary info''': Shows a general system description. Hovering over any body with the mouse displays more detailed information, like orbital parameters, temperature, atmosphere composition. It also shows the star-ports on the surface of the body. Bodies that have settlement are circled for easier spotting. In systems with multiple stars, the one currently selected as hyper jump target is indicated with a square centered on it.&lt;br /&gt;
&lt;br /&gt;
*'''Economics info''': Shows exports, imports of the system, and the illegal goods. Exported items are cheap, imported items are expensive, so this is a crucial screen for trading. Illegal goods can only be bought or sold at black market retailers found on the star-port BBS. Be careful though, some retailers are undercover cops who will fine you if you attempt to make business with them. Illegal items are based on factions. If you have selected a system other than the one you are currently in, it will compare imports/exports between them and mark commodities of special interest with Green (best, e.g. major export in system A is a major import in B), or white (Major/Minor export in A is a Minor/Major import in B). For Illegal goods only gray or red is used to show if it is legal in one of the systems but illegal in the other.&lt;br /&gt;
&lt;br /&gt;
*'''Demographics''': Shows information on the system, like population, government type and faction.&lt;br /&gt;
&lt;br /&gt;
===Galaxy map (F8)===&lt;br /&gt;
The galaxy map shows an overview of the whole galaxy, highlighting your current position. Brighter areas generally have more stars than darker areas.&lt;br /&gt;
&lt;br /&gt;
==Info View (F3)==&lt;br /&gt;
You can access various information by pressing F3, or the Info View button on the dashboard.&lt;br /&gt;
===Ship Information===&lt;br /&gt;
[[File:Manual_infoview_01_ship.png|600px|right]]&lt;br /&gt;
[[File:Manual_infoview_02_commander.png|600px|right]]&lt;br /&gt;
[[File:Manual_infoview_03_cargo.png|600px|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Shows information regarding your spaceship&lt;br /&gt;
*'''Hyperdrive &amp;amp; Hyperspace range'''&lt;br /&gt;
The class of hyperdrive installed on the ship. Higher class hyperdrives are heavier, but can jump to greater distances. Common hyperdrives consume Hydrogen, which can be bought on stations, or could be scooped from the atmosphere of gas giants, if the ship has a Fuel Scoop installed. &lt;br /&gt;
&lt;br /&gt;
Military Drives are generally faster, but they use Military fuel, which is more expensive and harder to obtain. Military drives turn fuel into Radioactives that you need to get rid of.&lt;br /&gt;
&lt;br /&gt;
Current Hyperspace range is displayed based on current ship mass and the amount of fuel in the cargo hold. You can see the theoretical maximum range shown in brackets. This changes as you fill your ship with cargo or fuel.&lt;br /&gt;
&lt;br /&gt;
*'''Mass data'''&lt;br /&gt;
** Weight empty: Dry mass of the ship, without any cargo or propellant.&lt;br /&gt;
** Capacity used: Used and available cargo and equipment capacity of the ship.&lt;br /&gt;
** Fuel weight: Amount of propellant, and the maximum capacity of the tanks. Propellant is Hydrogen. Tanks are refilled upon docking or landing on a station, if the player has enough money ($1-6 usually). It's possible to buy extra Hydrogen in the Commodity Market for manual in-flight refill.&lt;br /&gt;
** All-up weight: Sum of hull, cargo and propellant mass.&lt;br /&gt;
*'''Weapons'''&lt;br /&gt;
Cannons installed on front and rear facing hard-point.&lt;br /&gt;
*'''Fuel &amp;amp; Delta-v'''&lt;br /&gt;
Propellant and delta-v reserves.&lt;br /&gt;
Delta-v shows, how much speed change can be done using the propellant in the tanks. Generally, more delta-v means faster in-system travel.&lt;br /&gt;
&lt;br /&gt;
For a brachistochrone transfer (accelerating halfway, then decelerating) you can use up half of the delta-v. If you exceed that, then you will be unable to stop your ship. It's useful to save a good amount of delta-v (about 500-1000 km/s) for course corrections and landing.&lt;br /&gt;
&lt;br /&gt;
Delta-v display doesn't take additional Hydrogen in the cargo hold into account, so refueling with Hydrogen can increase it. Ship mass can also change delta-v capability dramatically.&lt;br /&gt;
&lt;br /&gt;
You can [[Hydrogen_scoop|scoop Hydrogen]] from the atmosphere of a gas giant, if you have Fuel Scoop installed.&lt;br /&gt;
&lt;br /&gt;
You can mine water in the field, if you have a Mining Blaster and Cargo scoop. You need to find a planet that has water (a smaller moon or dwarf planet is easier to mine), shoot the surface and collect any water that's blasted out from it. &lt;br /&gt;
*'''Accelerations'''&lt;br /&gt;
Shows the acceleration the ship is capable of with it's current load. Displayed both in m/s^2 and Gee. A ship with higher acceleration will feel faster, especially around station. It affects travel times less then delta-v.&lt;br /&gt;
&lt;br /&gt;
If Up acceleration is higher then the gravity of the planet, then the ship might not be able to take off or land, especially using the autopilot.&lt;br /&gt;
&lt;br /&gt;
Acceleration increases while the ship uses its propellant, and can be further increased by jettisoning cargo. Selling cargo or equipment can help too.&lt;br /&gt;
&lt;br /&gt;
*'''Crew'''&lt;br /&gt;
Minimum crew shows the needed head count to fly the ship (currently ignored). Crew cabin shows the crew capacity of the craft. Crew are useful in multiple ways, but you have to pay them weekly.&lt;br /&gt;
&lt;br /&gt;
Crew can control the ship, engage the enemy or repair damages. Each crew member has strengths and weaknesses, their abilities improve by time.&lt;br /&gt;
*'''Equipment'''&lt;br /&gt;
Shows the list of installed equipment. These equipments enhance your ship's capabilities, and can even add functions to it.&lt;br /&gt;
&lt;br /&gt;
===Personal Information===&lt;br /&gt;
&lt;br /&gt;
Shows information about your character.&lt;br /&gt;
Currently you see your combat rating, reputation standing, and rank (however, the rank can not be changed in the game yet, and doesn't influence the game either).&lt;br /&gt;
&lt;br /&gt;
Reputation affects mission availability, and can be increased by completing missions or donating to charities. Failed missions decrease your reputation. &lt;br /&gt;
&lt;br /&gt;
You can also change your name, gender and face.&lt;br /&gt;
&lt;br /&gt;
===Economy &amp;amp; Trade===&lt;br /&gt;
&lt;br /&gt;
Shows the contents of the cargo hold in detail, and allows in-flight refueling.&lt;br /&gt;
You can find the list of cargo in your hold, and you can jettison any of them here while in flight. If you have Cargo Scoop installed, you can even retrieve the jettisoned cargo.&lt;br /&gt;
&lt;br /&gt;
Refueling transfers 1t of Hydrogen, if available, to the propellant tanks.&lt;br /&gt;
Available and occupied passenger cabin space can be checked here too.&lt;br /&gt;
&lt;br /&gt;
===Missions===&lt;br /&gt;
[[File:Manual_infoview_04_missions.gif|600px|right]]&lt;br /&gt;
Shows information about accepted missions. You can check the destination and deadline here, and you can see additional information about each mission, using the More info... button on the right.&lt;br /&gt;
&lt;br /&gt;
You can find and take all kinds of missions on any star-port's BBS, but be sure to check if you and your ship is capable of completing it. Failing missions decrease your reputation, which makes it harder to find lucrative offers, so it will be harder to regain your reputation, so be cautious.&lt;br /&gt;
&lt;br /&gt;
===Crew Roster===&lt;br /&gt;
[[File:Manual_infoview_06_crew.gif|600px|right]]&lt;br /&gt;
You can access information about your crew. It shows the salary which you need to pay them weekly. If you can't pay for a while, they will get off on the next port, with some of your reputation.&lt;br /&gt;
&lt;br /&gt;
Some ships need multiple crew members on board even to fly it (this is ignored right now though), and they can perform several tasks, like piloting, engaging in combat or repairing the hull or failed equipment.&lt;br /&gt;
&lt;br /&gt;
== Station view (F4)==&lt;br /&gt;
[[File:Manual_station_bbs.png|600px|right]]&lt;br /&gt;
[[File:Manual_station_market.png|600px|right]]&lt;br /&gt;
Access this screen with F4 or the comms icon on the dash board, while you are docked to a space-port, be it a surface base or an orbital station.&lt;br /&gt;
All screens show the cargo and passenger capacity of your ship, your money and legal status in the footer.&lt;br /&gt;
&lt;br /&gt;
=== Lobby ===&lt;br /&gt;
It's a good idea to request launching clearance before taking off. The station dispatcher will stare at you until you get embarrassed and go about your business.&lt;br /&gt;
&lt;br /&gt;
=== Bulletin Board ===&lt;br /&gt;
&lt;br /&gt;
You will find missions of all sorts here on the BBS. Keep in mind that some might not be suited for your ship in terms of distance and deadline. Some missions are in-system, and will not require any hyperdrive, but will in turn pay less. You should check the system map even in this case, because planets might be in opposition on their courses and you end up traveling across the whole system which can take a while even with a high delta-v ship.&lt;br /&gt;
&lt;br /&gt;
Some missions are riskier, so it's always a good idea to ask if there will be any danger, so you can prepare properly, or avoid the mission altogether until you are better rigged for combat for example. &lt;br /&gt;
&lt;br /&gt;
Local hyperdrive maintenance companies offer their services here too. Old drives may start to misbehave, so if you don't want to strand yourself in the interstellar void, don't forget regular maintenance.&lt;br /&gt;
&lt;br /&gt;
Charities can also turn up from time to time, asking for money for their cases. Donating to them could increase your reputation.&lt;br /&gt;
&lt;br /&gt;
When you start a new game, you will not have any reputation, which must be earned by taking on missions (or donating to charities). You can see your current reputation standing in your personal Info view. Reputation affects what kind of missions you can take on. Completing a mission will increase your reputation, and opens up more job opportunities, and failure decreases it, narrowing the available mission after a while.&lt;br /&gt;
&lt;br /&gt;
Some stations have private black market goods dealers who trade in illegal goods, although some might be undercover police. &lt;br /&gt;
&lt;br /&gt;
You can also hire new crew members if you are in need. Make sure to have good candidates on the BBS before buying a new ship. You can make them sit a test to show their abilities (though those doesn't affect the game right now), and you can negotiate their pay too.&lt;br /&gt;
&lt;br /&gt;
If no mission suits you, then something new might pop up over time. Missions that require better reputation are grayed out, and the advertiser won't talk with you much.&lt;br /&gt;
&lt;br /&gt;
=== Commodity Market ===&lt;br /&gt;
&lt;br /&gt;
You can buy and sell commodities here. Keep in mind, that a heavy ship will have shorter hyperspace range. You can also buy Hydrogen or Military fuel for your hyperdrive here.&lt;br /&gt;
You just need to click on the name of the commodity on the left side to buy 1t of it. The contents of your cargo hold are on the right side, clicking on any item will sell 1t of it. Buy and sell prices are the same right now.&lt;br /&gt;
&lt;br /&gt;
Prices depend on the type of the system. Agricultural systems will pay a lot for farm machinery for example, and you can buy cheap foodstuff. An industrial system on the other hand sells cheap machinery, and pays good money for food. You need to scout out lucrative routes for yourself if you want to turn profit.&lt;br /&gt;
&lt;br /&gt;
Illegal goods can't be found on the market, you need to look for a black market retailer on the BBS. Note that one item can be completely legal in one system, but illegal in another.&lt;br /&gt;
&lt;br /&gt;
=== Shipyard ===&lt;br /&gt;
[[File:Manual_station_shipmarket.png|600px|right]]&lt;br /&gt;
You can buy ships here, trading in your current ship with all of its additional equipment or cargo.&lt;br /&gt;
You can check out the capabilities and stats of the ships offered for purchase, much like the information you have on the Info view screen. The ''After Trade-in'' is the final price you need to pay, and if it's negative, it means your current ship worths more then the one you are looking at. Trade-in value is about the half of the list value of any ship.&lt;br /&gt;
&lt;br /&gt;
Ships are traded continuously, so you just need to wait a few hours if there's nothing interesting there, and new vessels will turn up.&lt;br /&gt;
&lt;br /&gt;
=== Equipment Market ===&lt;br /&gt;
Buy/sell equipment for your ship. Equipment market works similar to the commodities market. Left side shows what's available on the station, right side shows, what's installed on your ship.&lt;br /&gt;
Each equipment has a certain mass, so they occupy space on the ship much like cargo. heavier ships are harder to maneuver, and their delta-v and hyperspace range also decreases. You can't remove any equipment while you are flying, except for using missiles.&lt;br /&gt;
Equipments add extra capabilities to your ship, like radar and targeting information, autopilot, cargo and fuel scooping ability. You can buy weapons, shields and some upgrades to these too.&lt;br /&gt;
&lt;br /&gt;
=== Ship Repairs ===&lt;br /&gt;
Maintaining your ship is important, unless you want to be stranded in an uninhabited system or interstellar space due yo your hyperdrive failing.&lt;br /&gt;
You can repair your hull here too, if needed.&lt;br /&gt;
&lt;br /&gt;
=== Police ===&lt;br /&gt;
If you have any fines you need to pay them or else risk getting shot down by some restless police officer.&lt;br /&gt;
You can get in trouble for trading with illegal goods, or even if you accidentally fire your weapon near any settlement. In the later case it's better to run, then pay the fine later.&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Manual&amp;diff=4512</id>
		<title>Manual</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Manual&amp;diff=4512"/>
		<updated>2023-09-17T09:11:34Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: Undo revision 4503 by Pebblegarden (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pioneer is a space adventure game set in the Milky-way 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;
This reference manual provides a brief overview of the game.&lt;br /&gt;
&lt;br /&gt;
This manual is a good bit out of date, but is slowly being improved.&lt;br /&gt;
&lt;br /&gt;
== Main menu ==&lt;br /&gt;
[[File:main_menu_2023.jpg|right|600px]]&lt;br /&gt;
* '''Continue Game''': Loads the game you saved previously using quick-save (Ctrl+F9).&lt;br /&gt;
* '''Start on Mars''': You start the game in the Solar System, on Mars, at Cydonia Spaceport with an outfitted Coronatrix. This is considered an easy start. Sol is the capital of the Solar Federation.&lt;br /&gt;
* '''Start at New Hope''': You start in Epsilon Eridani, the capital of the Commonwealth of Independent Worlds. Your [[Pumpkinseed]] stands on Itzalean Spaceport on New Hope. This is a bit more difficult starting point than Earth. Itzalean is an area with frequent solar eclipses.&lt;br /&gt;
* '''Start at Barnard's Star''': You start on the dock of High Security Prison Tranquility, orbiting Barnard's Star, not far from Sol. You have a poorly outfitted [[Xylophis]], so you can consider it a difficult start.&lt;br /&gt;
* '''Load Game''': You can load previously saved games here. NOTE: Saves created with older versions of Pioneer might not load. This usually happens after a major update to the game.&lt;br /&gt;
* '''Options''': Opens Pioneer's [[Settings Menu]]. From here you can set up graphics, controls, audio volumes or language, for example.&lt;br /&gt;
* '''Quit''': Exit the game.&lt;br /&gt;
* '''Build''': Shown in the lower-right corner, this number is the build of the game you are running. Basically a version number, useful for reporting bugs.&lt;br /&gt;
&lt;br /&gt;
==Flight==&lt;br /&gt;
Flight physics in Pioneer is Newtonian, which means there's no arbitrary limit to speed, orientation or position. A ship doesn't slow down in space, until it actively thrusts in the opposite direction it's flying. Or hits something. Or encounters a force, like gravity. Ship acceleration depends on ship mass and engine thrust. Because there's no friction in space, you can reach very high speeds compared to what we are used to here on Earth, up to ''thousands'' of kilometers per second.&lt;br /&gt;
&lt;br /&gt;
In space, speed only has meaning relative to some point of reference. In Pioneer, this reference body is selected automatically, and is whichever star, planet, or moon currently exerts gravitational force on you. &lt;br /&gt;
&lt;br /&gt;
There's an assisted flight mode which compensates for the frictionless motion of your ship in space, called Set Speed mode. It tries to maintain a set speed in the direction the ship is facing, using maneuvering thrusters. The effectiveness of this aid varies ship to ship, and the mass of your cargo load will also have an effect.&lt;br /&gt;
&lt;br /&gt;
Compared to today's spacecraft, ships in Pioneer are quite powerful in terms of acceleration, cargo and delta-v capacity. It's entirely possible to travel to the edge of a star system, even with the smallest shuttle. It will just take significantly more time.&lt;br /&gt;
&lt;br /&gt;
Gravity is simulated on a two-body level. You can orbit any planet or moon, but only the closest body's gravity affects your ship. This is the same body you measure your speed to. This also means that you have to take the planets gravity into account when you are flying close to it, landing, or taking off. You can also use this to your advantage to alter your course using less fuel for example.&lt;br /&gt;
&lt;br /&gt;
Distances are realistic, so space travel can take several days, or even weeks, in a large system. Time can be accelerated up to 10,000 times to shorten the game time for the player. This doesn't correspond with any device or technology in the game universe, it's just a UI/Gameplay feature.&lt;br /&gt;
&lt;br /&gt;
=== Flight UI ===&lt;br /&gt;
&lt;br /&gt;
Beginners are strongly recommended a look at the [http://pioneerwiki.com/wiki/Basic_flight Basic flight] article, to learn how to control the ship.&lt;br /&gt;
&lt;br /&gt;
When you pick your starting point, you will get behind the controls of your ship. [[File:Manual flight ui 01.png|right|600px|Manual flight ui 01.png]] There are several things on the flight UI:&lt;br /&gt;
&lt;br /&gt;
*'''Prograde marker:''' The direction you are flying relative to the point of reference, &lt;br /&gt;
*'''Speed relative to reference body''': The speed of the ship relative to the point of reference (''&amp;quot;System&amp;quot;'' in this example). &lt;br /&gt;
*'''Prograde marker &amp;amp; speed (target)''': Direction and speed of the ship relative to the target (which itself moves around a star for example) &lt;br /&gt;
*'''Heading''': Only shown, top centre of screen, when close to planet (not shown in screen shot here). Can switch reference system by clicking it to be either in planetary coordinates, heading 0 = north, 90 = east, 180 = south, 270 = west; or in system-wide coordinates, heading is on the celestial sphere (defined by the ecliptic) &lt;br /&gt;
*'''Pitch''': Only shown, at right centre of screen, when close to planet (not shown in screen shot here). Shows elevation of ship direction over horizon. &lt;br /&gt;
*'''Target''': The navigation target, selectable by using the Left Mouse Button. You can set any body or ship as the point of reference with Ctrl+Left Mouse &lt;br /&gt;
**'''Distance to target''': Shows the distance to the selected object. The unit is km for shorter distances and AU for large.   &lt;br /&gt;
*'''Speed lines''': A visual aid showing the direction and speed of motion. &lt;br /&gt;
*'''Fuel reserve''': The&amp;amp;nbsp;% amount of fuel (propellant really) the tanks contain. You can refill it during flight using the Info View screen (F3). Spaceports do not refil your tanks automatically, but you can do it on the station lobby. Note that it only shows&amp;amp;nbsp;%, but your actual deltaV can be more since you continuously expel propellant, so your craft becomes lighter. &lt;br /&gt;
*'''Scanner''': Scanner display which shows nearby contacts. Only works if the ship has a Scanner equipped. This area also shows any messages you receive, like completion or failure of a mission for example. &lt;br /&gt;
*'''Dashboard:''' &lt;br /&gt;
Note: Parts of this section are outdated because of the ongoing UI rewrite.&lt;br /&gt;
**'''Date, Time and time acceleration controls''':&amp;lt;br/&amp;gt; [[File:Manual flight ui 02 time.png|RTENOTITLE]] &lt;br /&gt;
***Shows the current date and time. &lt;br /&gt;
***The Pause, Play, and Fast Forward buttons can be used to speed up time to shorten long trips. Or to wait for better missions or ships on a station. Maximum level of time acceleration might be restricted, especially in the vicinity of stations or planets. &lt;br /&gt;
***This restriction could be overridden by holding ctrl when activating it. Use this with caution, because it could easily wreck your ship.   &lt;br /&gt;
**'''Screens''':&amp;lt;br/&amp;gt; [[File:Manual flight ui 03 screens.png|RTENOTITLE]] &lt;br /&gt;
***These buttons provide access to certain screens like Info View or Maps. You can also use the corresponding F-keys to access them. From left to right: &lt;br /&gt;
***'''View''' (F1): Switches between internal and external views. You can switch back to these views from any other screen using this button or key. &lt;br /&gt;
***'''Maps''' (F2): Sector and System Map and System information screens. You can plan your trip here. &lt;br /&gt;
***'''Info''' (F3): Information screens, about the ship, the player, missions, cargo and crew. &lt;br /&gt;
***'''Comms, Station screen''' (F4): Opens Station Screen while docked to a spaceport. &lt;br /&gt;
****There are six attitude (ship facing) options meant for orbital operations: &lt;br /&gt;
*****Prograde/retrograde: faces the ship in/opposite the direction that you are traveling (changes the height of the orbit) &lt;br /&gt;
*****Normal/anti-normal: faces the ship in the direction [anti-]normal to your orbital plane (changes the orbit inclination) &lt;br /&gt;
*****Radially in/radially out: faces the ship toward/away from the orbited body   &lt;br /&gt;
****If the ship has an autopilot installed, there are also options for automatically flying the ship into a low/medium/high orbit, flying to the vicinity of the navigation target, and flying to the navigation target and docking.     &lt;br /&gt;
**'''Controls''':&amp;lt;br/&amp;gt; [[File:Manual flight ui 04 controls.png|RTENOTITLE]] &lt;br /&gt;
***These are flight related controls, corresponding F-keys could be used also. &lt;br /&gt;
***'''Flight Mode''' (F5): Switches between ''Set Speed'' and ''Manual'' flight mode.&amp;lt;br/&amp;gt; Also switches off the autopilot or could be used to undock or take off. &lt;br /&gt;
***'''Landing gear''' (F6): Rises or lowers the landing gear (undercarriage). &lt;br /&gt;
***'''Hyperdrive''' (F7): Engages hyperdrive. Needs a reachable hyperspace target selected on the Sector Map, and enough fuel for the trip. If it is crossed out, then you are in the hyperperspace limit zone, and jumping is illegal. You need to fly far enough from the station, or the police will chase you down. &lt;br /&gt;
***'''Low Thrust''' (F8): Sets the percentage of low thrust (Thrusting while holding Left Shift) &lt;br /&gt;
***It also displays the desired speed in Set Speed flight mode. On this image it shows the flight mode, which is set to manual. &lt;br /&gt;
***The small '''circular button''' next to the flight mode display show the status of the rotation damping. &lt;br /&gt;
***The '''[!]''' next to the rotation damping indicator shows your alert status. &lt;br /&gt;
***[[File:Manual flight ui 05 controls.png|RTENOTITLE]]&amp;lt;br/&amp;gt; These are controls for Scanner mode, Missiles and equipment (ECM) and Messages respectively.&lt;br /&gt;
&lt;br /&gt;
===Combat===&lt;br /&gt;
Combat in Pioneer is quite straightforward right now. You can buy Pulse cannons or Plasma accelerators of different power and fire rate, if your ship has mount for them. Some ships have a rear mount too. Cannons generate heat when fired, and they need some time to cool down. They can not be fired if they are overheating.&lt;br /&gt;
&lt;br /&gt;
You can also buy several types of missiles, which can be fired using the '''M''' key, if you have a combat target. An ECM can provide protection against missiles by overloading their guidance.&lt;br /&gt;
&lt;br /&gt;
You can target any ship as combat target, using your '''Left Mouse Button'''(which doesn't change the Navigation target). The ship's computer displays the speed of the ship relative to your vessel, and it's distance. There's also a lead indicator, a little cross which shows the predicted location of the target. This is the spot where the ship will be in theory based on it's speed and direction, when the projectiles reach that distance. It's harder than that though, since no sane enemy will fly in a straight line at a constant speed. You shouldn't do that either, and this is where your maneuvering thrusters can be very useful.&lt;br /&gt;
&lt;br /&gt;
Ship durability is determined by it's hull's mass. Lighter ships can take less damage, but they are more maneuverable generally, then a behemoth transport, which might withstand sever punishing before giving in. You can repair any damage you suffer on spaceports, but it will cost you.&lt;br /&gt;
&lt;br /&gt;
There are several additional equipment that can increase your chances in a firefight (and make your life harder if your opponent has them):&lt;br /&gt;
* '''ECM''': Electronic countermeasure against missiles. The Advanced ECM provides protection against more sophisticated missiles.&lt;br /&gt;
* '''Hull Auto-repair system''': As the name implies, it slowly repairs any damage your ship took. It weights 40t, so smaller ships can not have it.&lt;br /&gt;
* '''Hypercloud Analyzer''': You can get readings from a hyperspace cloud remnant, like destination and arrival date. It's useful if you need to follow somebody.&lt;br /&gt;
* '''Laser Cooling Booster''': Speeds up the cooling of cannons, so continuous firing can be maintained longer.&lt;br /&gt;
* '''Scanner''': A sensor system that shows the ships and objects around you. A form of radar basically.&lt;br /&gt;
* '''Radar Mapper''': Provides additional information about the combat target, like the type of ship, mass, condition among others.&lt;br /&gt;
* '''Shield Generator''': Projects a protective screen around your ship, which can take a certain amount of damage before collapsing. It recharges slowly over time. You can mount several Shield Generator to increase its power.&lt;br /&gt;
* '''Shield Energy Booster''': Increases the effectiveness of the shields.&lt;br /&gt;
&lt;br /&gt;
===Flight controls ===&lt;br /&gt;
A brief summary of flight controls. A more detailed list can be found at [[Keyboard and mouse controls]].&lt;br /&gt;
&lt;br /&gt;
*'''Orientation''':&lt;br /&gt;
** '''W, S''': Pitch&lt;br /&gt;
** '''A, D''': Yaw&lt;br /&gt;
** '''Q, E''': Roll&lt;br /&gt;
** '''P''': Kill rotation&lt;br /&gt;
** '''R''': toggle rotation damping&lt;br /&gt;
** '''Right mouse button''': hold to activate mouse control&lt;br /&gt;
*'''Movement''':&lt;br /&gt;
** '''I, K''': Forward and backward thrust&lt;br /&gt;
** '''J, L''': Side thrust&lt;br /&gt;
** '''U, O''': Up and down thrust&lt;br /&gt;
* '''Left Shift''': use lower thrust&lt;br /&gt;
* '''F8''' : Set low thrust percentage&lt;br /&gt;
&lt;br /&gt;
*'''F5''': change flight mode, or undock, takeoff&lt;br /&gt;
** '''Manual flight''': everything is manual&lt;br /&gt;
** '''Set Speed Mode''': the ship tries to maintain the set speed in the direction the ship is looking. Using the thrusters override it temporarily&lt;br /&gt;
***'''Return''': Increase speed&lt;br /&gt;
*** '''Right Shift''': Decrease speed&lt;br /&gt;
*'''F6''': toggle landing gear&lt;br /&gt;
*'''F7''': Engage hyperdrive&lt;br /&gt;
*'''Weapons''':&lt;br /&gt;
** '''Space''': Fire cannon&lt;br /&gt;
** '''M''': Fire missile&lt;br /&gt;
*'''View''':&lt;br /&gt;
**'''F1''': Cycles trough internal, external and sideral views. External rotates with your ship, sideral doesn't.&lt;br /&gt;
**'''Numpad 2 4 6 8 and 1 3''': Rotate the the external views.&lt;br /&gt;
**'''Numapad + -''': Zoom external views.&lt;br /&gt;
**'''Numpad /''': Reset view.&lt;br /&gt;
**'''Internal views''':&lt;br /&gt;
***'''8 2''': Front and rear view. You can shot backwards in rear view if you have a weapon installed on that mount.&lt;br /&gt;
***'''4 6''': Left and right view.&lt;br /&gt;
***'''9 3''': Top and bottom view.&lt;br /&gt;
&lt;br /&gt;
==Map (F2)==&lt;br /&gt;
This is where navigation takes place. You can open the Map view with the F2 key or the button on the dashboard. &lt;br /&gt;
[[File:Manual_map_buttons.png|left]]&lt;br /&gt;
There are several maps you can use.&amp;lt;br/&amp;gt; You can reach them by using their F-key, or the button on the right side of the dashboard. If you come back to the map view you will return to the map screen you were at when you switched to another view. Orbital Map and System info shows the information of the system which is selected on the Sector map.&lt;br /&gt;
===Sector Map (F5)===&lt;br /&gt;
[[File:Manual_map_sector_01.png|right|600px]]&lt;br /&gt;
[[File:Manual_map_sector_02.png|right|600px]]&lt;br /&gt;
&lt;br /&gt;
The sector map shows the star systems in the galaxy, and you can plot your hyperspace route here, or you can just hunt for interesting systems for later visits. Every system is indicated by a sphere. Its colour indicates the primary star type. You can select a system by clicking on it. If it's a system with multiple stars, you can cycle trough them by clicking on the system again, or you can select it on the System Info screen.&lt;br /&gt;
&lt;br /&gt;
The map is divided to 8 light year cubes called sectors. Each sector has a coordinate on each axis; the origin (0,0,0) is Sol. The galaxy is not a flat disk, you can travel quite far on all three axes before you reach the edge of it.&lt;br /&gt;
'''Map view UI:'''&lt;br /&gt;
*'''Current system''': The system you are currently in, with sector coordinates and a brief info about it. The button next to it centers the view on it.&lt;br /&gt;
*'''Hyperspace target''': The system selected as hyperspace target. Shows the coordinates, distance, fuel and travel time needed to reach it, and a brief info about it. It can be locked with Space bar, that way it stays as target even if another system is selected.&lt;br /&gt;
*'''Selected system''': Shows the same info as Hyperspace target if that's not locked. If locked, it shows the same info for the selected system. Useful for system comparison or travel planning.&lt;br /&gt;
*'''Map view settings''':&lt;br /&gt;
**'''Draw vertical lines''': draws a vertical line from the stars in range to the plane of the map to show the height relative to that plane. Clarifies system positions a bit.&lt;br /&gt;
**'''Label out-of-range systems''': Toggles label display for systems that are out of range. The map only shows labels for systems in range by default, so it's a useful option if you look for a specific system for example.&lt;br /&gt;
**'''Label uninhabited systems''': Toggles label display for systems that are uninhabited (no settlements, spaceports).&lt;br /&gt;
*'''Hyperspace range''': the map draws a transparent sphere to show which systems are in jump range. Jump range depends on hyperdrive class, fuel on board and the total mass of the ship.&lt;br /&gt;
*'''View position''': On the lower left corner, distance and coordinate data are displayed regarding to the current view.&lt;br /&gt;
&lt;br /&gt;
'''Map controls:'''&lt;br /&gt;
*'''Translation''': You can move around on the sector map using the '''arrow keys''' and '''Page Up''' and '''Page Down''' for vertical (forward/backward) movement. Movement is based on the view rotation.&lt;br /&gt;
*'''Rotation''': The view can be rotated with the '''W A S D''' keys, or with holding the '''Right Mouse button'''.&lt;br /&gt;
*'''Zoom''': You can zoom with the '''+''' and '''-''' keys, or with the '''Mouse wheel''', or using the two buttons on the top right.&lt;br /&gt;
*'''Faster controls''': Holding '''Shift''' speeds up movement and zoom. Use '''Right Shift''' for smaller speedup and '''Left Shift''' for quite fast movement.&lt;br /&gt;
*'''Selecting system''': Moving around on the map will automatically select the system closest to the center of the view. You can also select any system with the mouse.&lt;br /&gt;
**'''Selecting another star''' In a system with multiple stars (Binary or tertiary systems), you can cycle trough each star by clicking on the system again until you find the one you want to travel to.&lt;br /&gt;
**'''Lock selection''': You can lock your selection as the hyperspace target with the '''Space bar'''. This allows for selecting another system to plan a route, or could be useful for comparing systems.&lt;br /&gt;
**'''Center''': Pressing '''C''' centers the view on the system you are in. '''G''' centers on Selected system and '''H''' centers on the Hyperspace target.&lt;br /&gt;
*'''Reset view''': '''R''' resets view rotation, and zoom.&lt;br /&gt;
*'''Search''': You can type in the name of the system to the Search field on the lower right and it will select the system if it can be found. Note that it doesn't search the entire galaxy, only in a few tens of sectors range. You can also enter coordinates to move the map to any area.&lt;br /&gt;
*'''Tab''': Switches the left side info panel to faction filter.&lt;br /&gt;
'''Zooming out far'''&lt;br /&gt;
&lt;br /&gt;
Zooming out far switches to an overview that only shows color-coded dots for systems based on faction, and brings up the faction filter to the right where you can hide any faction. Map controls are the same as before.&lt;br /&gt;
&lt;br /&gt;
===Orbital map (F6)===&lt;br /&gt;
[[File:Manual_map_orbit_01.png|right|600px]]&lt;br /&gt;
&lt;br /&gt;
You can switch to the Orbital map using F6. It shows the to-scale orbital map of the star system selected on the Sector map. It is useful for in-system navigation. It shows your current position and your course of movement, and the orbit of every body (star, planet, moon, space-station) in the system.&lt;br /&gt;
&lt;br /&gt;
'''Controls''':&lt;br /&gt;
Controls of the orbital map are a bit different from the Sector map. &lt;br /&gt;
*'''Selection''': You can select any orbital body using your '''Left Mouse button'''.&lt;br /&gt;
*'''Targeting''': Any body can be targeted by holding '''Shift''' while selecting the body.&lt;br /&gt;
*'''Translation''':The view is always centered on the body selected. You can't move the view.&lt;br /&gt;
*'''Rotation''': You can rotate either by holding the '''Middle mouse button''', or by using Left Mouse Button on the rotation icon&lt;br /&gt;
*'''Zoom''': You can use the '''Mouse Wheel''' or the buttons on the top right for zooming. Shift accelerates zoom similar to the sector view.&lt;br /&gt;
*'''Time controls''': You can use these buttons to check the position of the bodies in the system (including your ship) in any given time. The button in the center resets it to the current time. This is useful for planning a flight. The set time is shown above the current time on the left.&lt;br /&gt;
&lt;br /&gt;
The Orbital Map shows your position and course in the system, relative to your reference body, be it a stable orbit or an escape trajectory. You can use this to fine-tune your path while you are traveling to your destination for example. Or you can just check if you managed to achieve a stable orbit. &lt;br /&gt;
&lt;br /&gt;
Time controls work on this too, you can check where you will be at any given time. Note that this course display might change when you switch reference bodies, for instance when you get close to a planet.&lt;br /&gt;
&lt;br /&gt;
===System info (F7)===&lt;br /&gt;
[[File:Manual_map_info.gif|right|600px]]&lt;br /&gt;
This screen shows detailed info on the system. If the system has multiple stars, you can select which one you want to be the hyperspace destination, by clicking on it.&lt;br /&gt;
&lt;br /&gt;
F7 switches between these views: &lt;br /&gt;
&lt;br /&gt;
*'''Planetary info''': Shows a general system description. Hovering over any body with the mouse displays more detailed information, like orbital parameters, temperature, atmosphere composition. It also shows the star-ports on the surface of the body. Bodies that have settlement are circled for easier spotting. In systems with multiple stars, the one currently selected as hyper jump target is indicated with a square centered on it.&lt;br /&gt;
&lt;br /&gt;
*'''Economics info''': Shows exports, imports of the system, and the illegal goods. Exported items are cheap, imported items are expensive, so this is a crucial screen for trading. Illegal goods can only be bought or sold at black market retailers found on the star-port BBS. Be careful though, some retailers are undercover cops who will fine you if you attempt to make business with them. Illegal items are based on factions. If you have selected a system other than the one you are currently in, it will compare imports/exports between them and mark commodities of special interest with Green (best, e.g. major export in system A is a major import in B), or white (Major/Minor export in A is a Minor/Major import in B). For Illegal goods only gray or red is used to show if it is legal in one of the systems but illegal in the other.&lt;br /&gt;
&lt;br /&gt;
*'''Demographics''': Shows information on the system, like population, government type and faction.&lt;br /&gt;
&lt;br /&gt;
===Galaxy map (F8)===&lt;br /&gt;
The galaxy map shows an overview of the whole galaxy, highlighting your current position. Brighter areas generally have more stars than darker areas.&lt;br /&gt;
&lt;br /&gt;
==Info View (F3)==&lt;br /&gt;
You can access various information by pressing F3, or the Info View button on the dashboard.&lt;br /&gt;
===Ship Information===&lt;br /&gt;
[[File:Manual_infoview_01_ship.png|600px|right]]&lt;br /&gt;
[[File:Manual_infoview_02_commander.png|600px|right]]&lt;br /&gt;
[[File:Manual_infoview_03_cargo.png|600px|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Shows information regarding your spaceship&lt;br /&gt;
*'''Hyperdrive &amp;amp; Hyperspace range'''&lt;br /&gt;
The class of hyperdrive installed on the ship. Higher class hyperdrives are heavier, but can jump to greater distances. Common hyperdrives consume Hydrogen, which can be bought on stations, or could be scooped from the atmosphere of gas giants, if the ship has a Fuel Scoop installed. &lt;br /&gt;
&lt;br /&gt;
Military Drives are generally faster, but they use Military fuel, which is more expensive and harder to obtain. Military drives turn fuel into Radioactives that you need to get rid of.&lt;br /&gt;
&lt;br /&gt;
Current Hyperspace range is displayed based on current ship mass and the amount of fuel in the cargo hold. You can see the theoretical maximum range shown in brackets. This changes as you fill your ship with cargo or fuel.&lt;br /&gt;
&lt;br /&gt;
*'''Mass data'''&lt;br /&gt;
** Weight empty: Dry mass of the ship, without any cargo or propellant.&lt;br /&gt;
** Capacity used: Used and available cargo and equipment capacity of the ship.&lt;br /&gt;
** Fuel weight: Amount of propellant, and the maximum capacity of the tanks. Propellant is Hydrogen. Tanks are refilled upon docking or landing on a station, if the player has enough money ($1-6 usually). It's possible to buy extra Hydrogen in the Commodity Market for manual in-flight refill.&lt;br /&gt;
** All-up weight: Sum of hull, cargo and propellant mass.&lt;br /&gt;
*'''Weapons'''&lt;br /&gt;
Cannons installed on front and rear facing hard-point.&lt;br /&gt;
*'''Fuel &amp;amp; Delta-v'''&lt;br /&gt;
Propellant and delta-v reserves.&lt;br /&gt;
Delta-v shows, how much speed change can be done using the propellant in the tanks. Generally, more delta-v means faster in-system travel.&lt;br /&gt;
&lt;br /&gt;
For a brachistochrone transfer (accelerating halfway, then decelerating) you can use up half of the delta-v. If you exceed that, then you will be unable to stop your ship. It's useful to save a good amount of delta-v (about 500-1000 km/s) for course corrections and landing.&lt;br /&gt;
&lt;br /&gt;
Delta-v display doesn't take additional Hydrogen in the cargo hold into account, so refueling with Hydrogen can increase it. Ship mass can also change delta-v capability dramatically.&lt;br /&gt;
&lt;br /&gt;
You can [[Hydrogen_scoop|scoop Hydrogen]] from the atmosphere of a gas giant, if you have Fuel Scoop installed.&lt;br /&gt;
&lt;br /&gt;
You can mine water in the field, if you have a Mining Blaster and Cargo scoop. You need to find a planet that has water (a smaller moon or dwarf planet is easier to mine), shoot the surface and collect any water that's blasted out from it. &lt;br /&gt;
*'''Accelerations'''&lt;br /&gt;
Shows the acceleration the ship is capable of with it's current load. Displayed both in m/s^2 and Gee. A ship with higher acceleration will feel faster, especially around station. It affects travel times less then delta-v.&lt;br /&gt;
&lt;br /&gt;
If Up acceleration is higher then the gravity of the planet, then the ship might not be able to take off or land, especially using the autopilot.&lt;br /&gt;
&lt;br /&gt;
Acceleration increases while the ship uses its propellant, and can be further increased by jettisoning cargo. Selling cargo or equipment can help too.&lt;br /&gt;
&lt;br /&gt;
*'''Crew'''&lt;br /&gt;
Minimum crew shows the needed head count to fly the ship (currently ignored). Crew cabin shows the crew capacity of the craft. Crew are useful in multiple ways, but you have to pay them weekly.&lt;br /&gt;
&lt;br /&gt;
Crew can control the ship, engage the enemy or repair damages. Each crew member has strengths and weaknesses, their abilities improve by time.&lt;br /&gt;
*'''Equipment'''&lt;br /&gt;
Shows the list of installed equipment. These equipments enhance your ship's capabilities, and can even add functions to it.&lt;br /&gt;
&lt;br /&gt;
===Personal Information===&lt;br /&gt;
&lt;br /&gt;
Shows information about your character.&lt;br /&gt;
Currently you see your combat rating, reputation standing, and rank (however, the rank can not be changed in the game yet, and doesn't influence the game either).&lt;br /&gt;
&lt;br /&gt;
Reputation affects mission availability, and can be increased by completing missions or donating to charities. Failed missions decrease your reputation. &lt;br /&gt;
&lt;br /&gt;
You can also change your name, gender and face.&lt;br /&gt;
&lt;br /&gt;
===Economy &amp;amp; Trade===&lt;br /&gt;
&lt;br /&gt;
Shows the contents of the cargo hold in detail, and allows in-flight refueling.&lt;br /&gt;
You can find the list of cargo in your hold, and you can jettison any of them here while in flight. If you have Cargo Scoop installed, you can even retrieve the jettisoned cargo.&lt;br /&gt;
&lt;br /&gt;
Refueling transfers 1t of Hydrogen, if available, to the propellant tanks.&lt;br /&gt;
Available and occupied passenger cabin space can be checked here too.&lt;br /&gt;
&lt;br /&gt;
===Missions===&lt;br /&gt;
[[File:Manual_infoview_04_missions.gif|600px|right]]&lt;br /&gt;
Shows information about accepted missions. You can check the destination and deadline here, and you can see additional information about each mission, using the More info... button on the right.&lt;br /&gt;
&lt;br /&gt;
You can find and take all kinds of missions on any star-port's BBS, but be sure to check if you and your ship is capable of completing it. Failing missions decrease your reputation, which makes it harder to find lucrative offers, so it will be harder to regain your reputation, so be cautious.&lt;br /&gt;
&lt;br /&gt;
===Crew Roster===&lt;br /&gt;
[[File:Manual_infoview_06_crew.gif|600px|right]]&lt;br /&gt;
You can access information about your crew. It shows the salary which you need to pay them weekly. If you can't pay for a while, they will get off on the next port, with some of your reputation.&lt;br /&gt;
&lt;br /&gt;
Some ships need multiple crew members on board even to fly it (this is ignored right now though), and they can perform several tasks, like piloting, engaging in combat or repairing the hull or failed equipment.&lt;br /&gt;
&lt;br /&gt;
== Station view (F4)==&lt;br /&gt;
[[File:Manual_station_bbs.png|600px|right]]&lt;br /&gt;
[[File:Manual_station_market.png|600px|right]]&lt;br /&gt;
Access this screen with F4 or the comms icon on the dash board, while you are docked to a space-port, be it a surface base or an orbital station.&lt;br /&gt;
All screens show the cargo and passenger capacity of your ship, your money and legal status in the footer.&lt;br /&gt;
&lt;br /&gt;
=== Lobby ===&lt;br /&gt;
It's a good idea to request launching clearance before taking off. The station dispatcher will stare at you until you get embarrassed and go about your business.&lt;br /&gt;
&lt;br /&gt;
=== Bulletin Board ===&lt;br /&gt;
&lt;br /&gt;
You will find missions of all sorts here on the BBS. Keep in mind that some might not be suited for your ship in terms of distance and deadline. Some missions are in-system, and will not require any hyperdrive, but will in turn pay less. You should check the system map even in this case, because planets might be in opposition on their courses and you end up traveling across the whole system which can take a while even with a high delta-v ship.&lt;br /&gt;
&lt;br /&gt;
Some missions are riskier, so it's always a good idea to ask if there will be any danger, so you can prepare properly, or avoid the mission altogether until you are better rigged for combat for example. &lt;br /&gt;
&lt;br /&gt;
Local hyperdrive maintenance companies offer their services here too. Old drives may start to misbehave, so if you don't want to strand yourself in the interstellar void, don't forget regular maintenance.&lt;br /&gt;
&lt;br /&gt;
Charities can also turn up from time to time, asking for money for their cases. Donating to them could increase your reputation.&lt;br /&gt;
&lt;br /&gt;
When you start a new game, you will not have any reputation, which must be earned by taking on missions (or donating to charities). You can see your current reputation standing in your personal Info view. Reputation affects what kind of missions you can take on. Completing a mission will increase your reputation, and opens up more job opportunities, and failure decreases it, narrowing the available mission after a while.&lt;br /&gt;
&lt;br /&gt;
Some stations have private black market goods dealers who trade in illegal goods, although some might be undercover police. &lt;br /&gt;
&lt;br /&gt;
You can also hire new crew members if you are in need. Make sure to have good candidates on the BBS before buying a new ship. You can make them sit a test to show their abilities (though those doesn't affect the game right now), and you can negotiate their pay too.&lt;br /&gt;
&lt;br /&gt;
If no mission suits you, then something new might pop up over time. Missions that require better reputation are grayed out, and the advertiser won't talk with you much.&lt;br /&gt;
&lt;br /&gt;
=== Commodity Market ===&lt;br /&gt;
&lt;br /&gt;
You can buy and sell commodities here. Keep in mind, that a heavy ship will have shorter hyperspace range. You can also buy Hydrogen or Military fuel for your hyperdrive here.&lt;br /&gt;
You just need to click on the name of the commodity on the left side to buy 1t of it. The contents of your cargo hold are on the right side, clicking on any item will sell 1t of it. Buy and sell prices are the same right now.&lt;br /&gt;
&lt;br /&gt;
Prices depend on the type of the system. Agricultural systems will pay a lot for farm machinery for example, and you can buy cheap foodstuff. An industrial system on the other hand sells cheap machinery, and pays good money for food. You need to scout out lucrative routes for yourself if you want to turn profit.&lt;br /&gt;
&lt;br /&gt;
Illegal goods can't be found on the market, you need to look for a black market retailer on the BBS. Note that one item can be completely legal in one system, but illegal in another.&lt;br /&gt;
&lt;br /&gt;
=== Shipyard ===&lt;br /&gt;
[[File:Manual_station_shipmarket.png|600px|right]]&lt;br /&gt;
You can buy ships here, trading in your current ship with all of its additional equipment or cargo.&lt;br /&gt;
You can check out the capabilities and stats of the ships offered for purchase, much like the information you have on the Info view screen. The ''After Trade-in'' is the final price you need to pay, and if it's negative, it means your current ship worths more then the one you are looking at. Trade-in value is about the half of the list value of any ship.&lt;br /&gt;
&lt;br /&gt;
Ships are traded continuously, so you just need to wait a few hours if there's nothing interesting there, and new vessels will turn up.&lt;br /&gt;
&lt;br /&gt;
=== Equipment Market ===&lt;br /&gt;
Buy/sell equipment for your ship. Equipment market works similar to the commodities market. Left side shows what's available on the station, right side shows, what's installed on your ship.&lt;br /&gt;
Each equipment has a certain mass, so they occupy space on the ship much like cargo. heavier ships are harder to maneuver, and their delta-v and hyperspace range also decreases. You can't remove any equipment while you are flying, except for using missiles.&lt;br /&gt;
Equipments add extra capabilities to your ship, like radar and targeting information, autopilot, cargo and fuel scooping ability. You can buy weapons, shields and some upgrades to these too.&lt;br /&gt;
&lt;br /&gt;
=== Ship Repairs ===&lt;br /&gt;
Maintaining your ship is important, unless you want to be stranded in an uninhabited system or interstellar space due yo your hyperdrive failing.&lt;br /&gt;
You can repair your hull here too, if needed.&lt;br /&gt;
&lt;br /&gt;
=== Police ===&lt;br /&gt;
If you have any fines you need to pay them or else risk getting shot down by some restless police officer.&lt;br /&gt;
You can get in trouble for trading with illegal goods, or even if you accidentally fire your weapon near any settlement. In the later case it's better to run, then pay the fine later.&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=User_talk:Pebblegarden&amp;diff=4504</id>
		<title>User talk:Pebblegarden</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=User_talk:Pebblegarden&amp;diff=4504"/>
		<updated>2023-09-15T15:06:52Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: Feedback on edits&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I recommend not renaming images, but just replace with new image with same name. Then the previous image will still be tracked in the history, when clicking the image. Also, I recommend using latest master branch (if you can not compile, you can download artifact for windows &amp;amp; linux in github (if logged in), from the actions tab.&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=GUI_introduction&amp;diff=4498</id>
		<title>GUI introduction</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=GUI_introduction&amp;diff=4498"/>
		<updated>2023-09-15T12:07:22Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: /* OldUI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page aims to give pointers as to how to get started making UI using pioneer's Lua scripts. For deeper discussion on pioneer's &amp;quot;under the hood&amp;quot; rendering, see forum post: [https://forum.pioneerspacesim.net/viewtopic.php?f=3&amp;amp;t=489 A simple (sort of) description of Pioneers rendering]&lt;br /&gt;
&lt;br /&gt;
= Background history =&lt;br /&gt;
Pioneer's history of different UI (User Interface) systems is a long and winding one, thus the following is a lament of what was.&lt;br /&gt;
&lt;br /&gt;
== OldUI ==&lt;br /&gt;
What is now called &amp;quot;OldUI&amp;quot; by the dev team, is the original UI, from when Pioneer started as a 1:1 clone of Frontier, in 2008, implemented in pure C++. Any change to the UI elements required C++ knowledge, a full copy of the source code, with compiler, and re-compilation. &lt;br /&gt;
&lt;br /&gt;
[[File:Interact.bbsad.1.png|400px]]&lt;br /&gt;
[[File:Manual_map_info.gif|500px]]&lt;br /&gt;
&lt;br /&gt;
== NewUI ==&lt;br /&gt;
&lt;br /&gt;
NewUI was meant to move the UI from C++ to Lua, so we don't need to re-compile the game for every change, and allow players to easily modify the game. The station screens were successfully converted in 2013, by [https://github.com/pioneerspacesim/pioneer/pull/2589 #2589 ], but never the cockpit, nor starmaps.&lt;br /&gt;
&lt;br /&gt;
Due to lack of time, and coders, transition stalled, with SystemInfo being halfway there ([https://github.com/pioneerspacesim/pioneer/pull/3564 #3564]). At the time of writing this the SectorView (F2) and OrbitView (F6), and others are still defined in the old hard coded C++ source code.&lt;br /&gt;
&lt;br /&gt;
NewUI is recognized by the Deep blue screens, with thin cyan borders on buttons. The bottom Frontier &amp;quot;coockpit&amp;quot;/radar dashbord is still OldUI.&lt;br /&gt;
&lt;br /&gt;
[[File:Manual_infoview_06_crew.gif|600px]]&lt;br /&gt;
&lt;br /&gt;
== PiGUI ==&lt;br /&gt;
&lt;br /&gt;
The main creator of NewUI (robn) left the project which was now in a limbo between two simultaneous different UI systems. As ecraven joined, in the summer of 2016 he demonstrated how a third party C++ library, [https://github.com/ocornut/imgui Dear Imgui], could be used to fast prototyping, and he quickly moved the OldUI cockpit to Imgui, and this was done from lua scripts, as the Imgui functions were exposed to the Lua scripting side of the project, thus we call this UI: &amp;quot;PiGUI&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Pioneer had at this time 3 different UI systems, in the transitioning phase to pure PiGUI. A collaborative effort of several new developers (sturnclaw, Gliese852, vakhoir) culminated to remove all NewUI screens by converting them to PiGUI [https://github.com/pioneerspacesim/pioneer/pull/5032 #5032] which finished in december of 2020.&lt;br /&gt;
&lt;br /&gt;
In the transition to PiGui, the galaxy (image) map (F8) was removed, since motivation in the dev team to purge the code base of NewUI right away was higher than to port it to PiGui, as it didn't have any real purpose for the game, other than as a fun gimmick. (The galaxy image is still used under the hood to compute star density in sectors)&lt;br /&gt;
&lt;br /&gt;
At the time of writing (2021-05) OldUI still lingers (F6,F7,F8 screens), but PiGui has replaced most of OldUI, and all of NewUI.&lt;br /&gt;
&lt;br /&gt;
[[File:Bbs_pigui.png|500px]]&lt;br /&gt;
&lt;br /&gt;
= Getting started with UI (PiGUI) =&lt;br /&gt;
&lt;br /&gt;
Some pointers on how to get started with PiGUI. The perhaps easiest is to look at the example code script provided below, and modify it. Then search the code for other UI elements you're interested in duplicating. However, let us look at an in-depth way to go from imgui to pioneer's UI.&lt;br /&gt;
&lt;br /&gt;
== Imgui ==&lt;br /&gt;
&lt;br /&gt;
Start with downloading and compiling the stand alone [https://github.com/ocornut/imgui Imgui] C++ program according to instructions on their website, and launch, here, we've compiled the sdl opnegl 3 example and launching it from linux command line:&lt;br /&gt;
&lt;br /&gt;
 ./examples/example_sdl_opengl3/example_sdl_opengl3 &lt;br /&gt;
&lt;br /&gt;
Which results in a demo program that shows all features of Imgui.&lt;br /&gt;
&lt;br /&gt;
[[File:imgui_cpp_demo.png]]&lt;br /&gt;
&lt;br /&gt;
Many of the features of Imgui are ported to lua in pioneer, but not all. Let's look at how this code makes its meandering path to our in-game pioneer screen.&lt;br /&gt;
&lt;br /&gt;
First, look at the file above, we see the tab-bar is looking very sexy. By what magic is it made? Let's see if we can find it in imgui's C++ source (don't worry, you don't need to know C/C++, other than maybe recognizing if/for-loops and arrays). So we search the C++ source code for some string/sentence visible the demo ap, e.g. &amp;quot;Beetroot&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:imgui_cpp_source.png]]&lt;br /&gt;
&lt;br /&gt;
On line 2026 we find &amp;quot;Beetroot&amp;quot;, it's part of a data structure, with the other names we saw in the tab-bar in the demo app. This data structure (an array) is then used on line 2031 (for the check boxes, look at the image of the demo again) and then line 2038 for what seems to be the tab-bar. The function ImGui::BeginTabBar seems to be a good candidate for what's making the magic. Let's see if we can find it in pioneer's source code, e.g. by searching from pioneer's source root directory:&lt;br /&gt;
&lt;br /&gt;
 git grep -i BeginTabBar&lt;br /&gt;
 data/pigui/libs/forwarded.lua:ui.beginTabBar = pigui.BeginTabBar&lt;br /&gt;
 data/pigui/libs/wrappers.lua:    local open = pigui.BeginTabBar(id)&lt;br /&gt;
 src/lua/LuaPiGui.cpp:    bool state = ImGui::BeginTabBar(str.c_str(), tab_bar_flags);&lt;br /&gt;
 src/lua/LuaPiGui.cpp:        { &amp;quot;BeginTabBar&amp;quot;, l_pigui_begin_tab_bar },&lt;br /&gt;
 src/pigui/PerfInfo.cpp:      if (ImGui::BeginTabBar(&amp;quot;PerfInfoTabs&amp;quot;)) {&lt;br /&gt;
 src/pigui/PerfInfo.cpp:      if (ImGui::BeginTabBar(&amp;quot;Texture List&amp;quot;)) {&lt;br /&gt;
&lt;br /&gt;
(here, we have ignored the contrib/ folder, that's where we put third party libraries, like imgui, we don't ever want to work or read those). We find matches for BeginTabBar in src/lua/LuaPiGui.cpp. This is where the imgui function is imported (from contrib/imgui) to pioneer's source, then in LuaPiGui we expose it to Lua, by the function l_pigui_begin_tab_bar, which is then mapped to the key &amp;quot;BeginTabBar&amp;quot;. Note: this could be arbitrary, e.g. &amp;quot;Begin_Tab_Bar&amp;quot;, or &amp;quot;begin_tab_bar&amp;quot;, etc. either way, it's the name by which we can call it from the Lua code.&lt;br /&gt;
&lt;br /&gt;
Searching BeginTabBar in data/ we find a match in data/pigui/libs/forwarded.lua:&lt;br /&gt;
&lt;br /&gt;
 ui.beginTabBar = pigui.BeginTabBar&lt;br /&gt;
&lt;br /&gt;
This is where we re-name it to something more akin to our lua defined &amp;quot;pigui&amp;quot;. So when we use it in our code, we should preferably use &amp;quot;ui.beginTabBar&amp;quot;. See example of this further down.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PiGUI ==&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
Below is a snippet that if saved to a lua file placed anywhere in data/modules/ will draw a window on the WorldView screen.&lt;br /&gt;
==== Result ====&lt;br /&gt;
[[File:hello_world_pigui.png]]&lt;br /&gt;
&lt;br /&gt;
==== Code ====&lt;br /&gt;
 -- Copyright © 2008-2021 Pioneer Developers. See AUTHORS.txt for details&lt;br /&gt;
 -- Licensed under the terms of the GPL v3. See licenses/GPL-3.txt&lt;br /&gt;
 &lt;br /&gt;
 --[[&lt;br /&gt;
 	data/pigui/modules/hello_world.lua&lt;br /&gt;
 &lt;br /&gt;
 	Written for @impaktor as a tutorial on how to get started with pigui by&lt;br /&gt;
 	@sturnclaw, extended by @impaktor&lt;br /&gt;
 --]]&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 local Game = require 'Game'&lt;br /&gt;
 &lt;br /&gt;
 -- pigui is traditionally imported as 'ui' for simplicity.&lt;br /&gt;
 local ui = require 'pigui'&lt;br /&gt;
 &lt;br /&gt;
 -- gameView is needed to dispatch to our Hello World window&lt;br /&gt;
 local gameView = require 'pigui.views.game'&lt;br /&gt;
 &lt;br /&gt;
 -- we want all displayed text to be localized&lt;br /&gt;
 local lui = require 'Lang'.GetResource('ui-core')&lt;br /&gt;
 &lt;br /&gt;
 -- ui.WindowFlags is an acceleration structure to allow composing window flags&lt;br /&gt;
 -- once and reusing them with each call.&lt;br /&gt;
 local window_flags = ui.WindowFlags {&lt;br /&gt;
 	-- We don't want to be able to collapse the window.&lt;br /&gt;
 	-- &amp;quot;NoCollapse&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 local amount = 1000&lt;br /&gt;
 &lt;br /&gt;
 local Character = require &amp;quot;Character&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 -- Register this window as a Game-view module. It will be displayed when the&lt;br /&gt;
 -- player is in the World View.&lt;br /&gt;
 -- registerModule takes two parameters, the unique key of the module, and the&lt;br /&gt;
 -- module descriptor table.&lt;br /&gt;
 gameView.registerModule(&amp;quot;Small example&amp;quot;, {&lt;br /&gt;
 &lt;br /&gt;
 	-- Pretty self explanatory, if this is true, draw() is called when the&lt;br /&gt;
 	-- ship is in hyperspace as well as in normal space.&lt;br /&gt;
 	ShowInHyperspace = true,&lt;br /&gt;
 &lt;br /&gt;
 	-- Called once per frame while the module is active. The function is passed&lt;br /&gt;
 	-- the module object (this table) and the frame delta time&lt;br /&gt;
 	draw = function(self, deltaTime)&lt;br /&gt;
 		-- ui.window takes three parameters: the window title, the window flags,&lt;br /&gt;
 		-- and a function containing the body of the window.&lt;br /&gt;
 &lt;br /&gt;
 		-- the window title is an IMGUI string ID - two windows cannot share&lt;br /&gt;
 		-- the same ID at the same stack position. To work around this,&lt;br /&gt;
 		-- everything after ## is not part of the title, but instead used to&lt;br /&gt;
 		-- make the window ID unique.&lt;br /&gt;
 		ui.window(&amp;quot;Debug!##id43&amp;quot;, window_flags, function()&lt;br /&gt;
 			ui.text(&amp;quot;State: &amp;quot; .. Game.player:GetFlightState())&lt;br /&gt;
 &lt;br /&gt;
 			if (ui.beginTabBar(&amp;quot;mytabbar&amp;quot;)) then&lt;br /&gt;
 				if ui.beginTabItem(&amp;quot;squares&amp;quot;) then&lt;br /&gt;
 					ui.text(&amp;quot;test1&amp;quot;)&lt;br /&gt;
 					ui.endTabItem()&lt;br /&gt;
 				end&lt;br /&gt;
 				if ui.beginTabItem(&amp;quot;BALLS!&amp;quot;) then&lt;br /&gt;
 					ui.text(&amp;quot;test2&amp;quot;)&lt;br /&gt;
 					ui.endTabItem()&lt;br /&gt;
 				end&lt;br /&gt;
 				if ui.beginTabItem(&amp;quot;Triangle&amp;quot;) then&lt;br /&gt;
 					ui.text(&amp;quot;test3&amp;quot;)&lt;br /&gt;
 					ui.text(&amp;quot;some more text&amp;quot;)&lt;br /&gt;
 					ui.endTabItem()&lt;br /&gt;
 				end&lt;br /&gt;
 				ui.endTabBar()&lt;br /&gt;
 			end&lt;br /&gt;
 &lt;br /&gt;
 			-- Give player mone if pressing the button&lt;br /&gt;
 			if ui.button(&amp;quot;Give money&amp;quot;, Vector2(100, 0)) then&lt;br /&gt;
 				Game.player:AddMoney(amount)&lt;br /&gt;
 			end&lt;br /&gt;
 &lt;br /&gt;
 			-- draws a horizontal line&lt;br /&gt;
 			ui.separator()&lt;br /&gt;
 &lt;br /&gt;
 			-- Reputation &amp;amp; kills&lt;br /&gt;
 			if ui.collapsingHeader(&amp;quot;Reputation &amp;amp; kills&amp;quot;, {}) then&lt;br /&gt;
 				Character.persistent.player.reputation = ui.sliderInt(&amp;quot;Reputation&amp;quot;, Character.persistent.player.reputation, 0, 512)&lt;br /&gt;
 				ui.sameLine()&lt;br /&gt;
 				ui.text(Character.persistent.player:GetReputationRating())&lt;br /&gt;
 &lt;br /&gt;
 				Character.persistent.player.killcount = ui.sliderInt(&amp;quot;Kills&amp;quot;, Character.persistent.player.killcount, 0, 6000)&lt;br /&gt;
 				ui.sameLine()&lt;br /&gt;
 				ui.text(Character.persistent.player:GetCombatRating())&lt;br /&gt;
 			end&lt;br /&gt;
 &lt;br /&gt;
 		end)&lt;br /&gt;
 	end&lt;br /&gt;
 })&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Development_Tools&amp;diff=4497</id>
		<title>Development Tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Development_Tools&amp;diff=4497"/>
		<updated>2023-09-15T09:17:57Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: Update Misc section with hot reloading modules and make into bullet list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here we aim to document little known features that developers add to help themselves in the development process, wheather that be debugging, profiling, or what else&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Debug ==&lt;br /&gt;
&lt;br /&gt;
=== Compile with Debug support === &lt;br /&gt;
Build debug &lt;br /&gt;
&lt;br /&gt;
    ./bootstrap -DCMAKE_BUILD_TYPE=Debug&lt;br /&gt;
&lt;br /&gt;
You can now use debugger, like [https://felix-knorr.net/posts/2022-02-27-direct-gdb.html gdb] (for more advanced gdb tricks see [https://begriffs.com/posts/2022-07-17-debugging-gdb-ddd.html Pleasant debugging with GDB and DDD]; there's also [https://github.com/epasveer/seer GUI available] for gdb.)&lt;br /&gt;
&lt;br /&gt;
=== Document weirdness ===&lt;br /&gt;
&lt;br /&gt;
To record video from gameplay (e.g. to document unexpected behavior):&lt;br /&gt;
&lt;br /&gt;
    To record video directly from Pioneer you will need to add the line&lt;br /&gt;
    RecordVideo=1 somewhere within your config.ini file. Then once ingame&lt;br /&gt;
    you can press Ctrl+ScrLk to start or stop recording.&lt;br /&gt;
&lt;br /&gt;
=== Debug from in-game ===&lt;br /&gt;
&lt;br /&gt;
Ctrl+I open debug window&lt;br /&gt;
&lt;br /&gt;
Ctrl+F10 open planet viewer, to view selected nav target&lt;br /&gt;
&lt;br /&gt;
Ctrl+F11 reload shaders while running game&lt;br /&gt;
&lt;br /&gt;
Ctrl+Del reload pigui element, allows for live coding. Limited support: Only reloads the active view and then only if the active view has manually enabled it (add `debugReload = function() package.reimport() end` to the view's definition next to the draw and refresh functions)&lt;br /&gt;
&lt;br /&gt;
Ctrl + click &amp;quot;New Game&amp;quot; for customizing start state&lt;br /&gt;
&lt;br /&gt;
=== Debug savegame files ===&lt;br /&gt;
&lt;br /&gt;
 ./build/savegamedump savefiles/&amp;lt;mysavename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and look in your savefile folder (e.g. ~/.pioneer/savefiles on linux) at &amp;lt;mysavename&amp;gt;.json file, put JSON e.g. into http://jsonviewer.stack.hu/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debug Lua Callstack ===&lt;br /&gt;
&lt;br /&gt;
A lua callstack can also help - there's a function in lua/core/Sandbox.cpp that can be called in the debugger to get a callstack&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Misc. ===&lt;br /&gt;
&lt;br /&gt;
* Pioneer can dump galaxy information, to make sure the galaxy hasn't changed, or to gather statistics, described in [https://github.com/pioneerspacesim/pioneer/pull/2811 #2811]&lt;br /&gt;
&lt;br /&gt;
* The quit confirmation box can be supressed by putting ConfirmQuit=0 in the pioneer configuration file&lt;br /&gt;
&lt;br /&gt;
* Modules can be reloaded while game is running, by: Ctrl+Del if they have [https://github.com/pioneerspacesim/pioneer/blob/1957b8d8e586ae5ec44a495406168645e8c2b146/data/pigui/views/game.lua#L302 debugReload] declared&lt;br /&gt;
&lt;br /&gt;
== Profiling ==&lt;br /&gt;
&lt;br /&gt;
For Profiling, one needs some tools installed?&lt;br /&gt;
&lt;br /&gt;
Now new profiling functions merged:&lt;br /&gt;
[https://github.com/pioneerspacesim/pioneer/pull/5168 Add zone-based profiling support #5168]&lt;br /&gt;
&lt;br /&gt;
There's also support for chrome://tracing format event to JSON, for better visualization, since&lt;br /&gt;
[https://github.com/pioneerspacesim/pioneer/pull/5380  Add Chrome-Tracing output support to profiler #5380]&lt;br /&gt;
&lt;br /&gt;
=== Build with profiling support ===&lt;br /&gt;
&lt;br /&gt;
ToDo edit this to improve and make sense and be correct&lt;br /&gt;
&lt;br /&gt;
Profiling: to build with the profiler enabled, simply run ./bootstrap&lt;br /&gt;
-DPROFILER_ENABLED=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo and compile as normal.&lt;br /&gt;
The latter flag is not strictly needed, but building with a BUILD_TYPE&lt;br /&gt;
&lt;br /&gt;
To-do: extract wisdome from this conversation, https://github.com/pioneerspacesim/pioneer/pull/4764 and document here&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;fluffyfreak&amp;gt; Gliese852, if you're on Windows then I use&lt;br /&gt;
                  https://github.com/VerySleepy/verysleepy a lot of the time&lt;br /&gt;
                  [17:37:07]&lt;br /&gt;
    &amp;lt;Gliese852&amp;gt; fluffyfreak: thanks, I meant the built-in profiler, it seems that&lt;br /&gt;
                if you do nothing, it creates a report on the launch of the&lt;br /&gt;
                program, and the launch of a new game [17:54:21]&lt;br /&gt;
    &amp;lt;fluffyfreak&amp;gt; If you're running the profile build then you can press Ctrl+p to&lt;br /&gt;
                  take a profile at any time [17:58:50]&lt;br /&gt;
    &amp;lt;fluffyfreak&amp;gt; hmm, been a while since I used it. There's two modes [17:59:37]&lt;br /&gt;
    &amp;lt;fluffyfreak&amp;gt; Ctrl+shift+p = is capture one frame, otherwise Ctrl+p toggles&lt;br /&gt;
                  capturing whenever the framerate is &amp;quot;slow&amp;quot; [18:00:12]&lt;br /&gt;
    &lt;br /&gt;
=== Using profiler ===&lt;br /&gt;
&lt;br /&gt;
to do&lt;br /&gt;
&lt;br /&gt;
=== clang format check ===&lt;br /&gt;
&lt;br /&gt;
    Yes, for your use you'd likely want to invoke `FORMAT_BASE=master ./autoformat` or `FORMAT_BASE=HEAD~1 ./autoformat`&lt;br /&gt;
    - there's little difference between the `autoformat` script and the `scripts/clang-format.sh` script other than the &lt;br /&gt;
    latter prompts you to automatically apply the issues in your files.&lt;br /&gt;
&lt;br /&gt;
== Editor integration ==&lt;br /&gt;
&lt;br /&gt;
There is support for sending Lua code from IDE into running pioneer session via TCP:&lt;br /&gt;
https://github.com/pioneerspacesim/pioneer/pull/3768&lt;br /&gt;
https://github.com/pioneerspacesim/pioneer/pull/4799&lt;br /&gt;
&lt;br /&gt;
=== Easy start (Linux) ===&lt;br /&gt;
&lt;br /&gt;
1. Reconfigure with remote lua console support and rebuild:&lt;br /&gt;
 ./bootstrap -DREMOTE_LUA_REPL=ON&lt;br /&gt;
 make -C build -j4&lt;br /&gt;
&lt;br /&gt;
2. Now after starting a new, or loading a saved game, you can connect to the program via telnet on port '''12345''':&lt;br /&gt;
&lt;br /&gt;
 $ telnet localhost 12345&lt;br /&gt;
 Trying 127.0.0.1...&lt;br /&gt;
 Connected to localhost.&lt;br /&gt;
 Escape character is '^]'.&lt;br /&gt;
 ** Welcome to the Pioneer Remote Debugging Console!&lt;br /&gt;
 &amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you can run any lua commands.&lt;br /&gt;
&lt;br /&gt;
=== Example of use with VIM for hot reloading of the module ===&lt;br /&gt;
&lt;br /&gt;
I added the following code to '''~/.vimrc:'''&lt;br /&gt;
 nmap ;mm :w&amp;lt;CR&amp;gt;:call PioneerReloadModuleFnc(expand(&amp;quot;%&amp;quot;))&amp;lt;CR&amp;gt;&amp;lt;CR&amp;gt;&lt;br /&gt;
 function! PioneerReloadModuleFnc(filename)&lt;br /&gt;
 	let s:data = strcharpart(a:filename, 0, 4)&lt;br /&gt;
 	let s:lua = strcharpart(a:filename, strlen(a:filename) - 3, 4)&lt;br /&gt;
 	if s:data == &amp;quot;data&amp;quot; &amp;amp;&amp;amp; s:lua == &amp;quot;lua&amp;quot;&lt;br /&gt;
 		let s:crop = strcharpart(a:filename, 5, strlen(a:filename) - 9)&lt;br /&gt;
 		let s:convert = substitute(s:crop, &amp;quot;/&amp;quot;, &amp;quot;.&amp;quot;, &amp;quot;g&amp;quot;)&lt;br /&gt;
 		let s:command = &amp;quot;package.reimport(\&amp;quot;&amp;quot; . s:convert . &amp;quot;\&amp;quot;)&amp;quot;&lt;br /&gt;
 		:execute &amp;quot;!echo '&amp;quot;. s:command . &amp;quot;' | telnet localhost 12345&amp;quot;&lt;br /&gt;
 	else&lt;br /&gt;
 		:echom &amp;quot;ERROR: file should be \&amp;quot;*.lua\&amp;quot; and in \&amp;quot;data\&amp;quot; subfolder&amp;quot;&lt;br /&gt;
 	endif&lt;br /&gt;
 endfunction&lt;br /&gt;
&lt;br /&gt;
Now when pressing the combination ''';mm''' in normal mode, the file is saved, then telnet is launched and the command is sent:&lt;br /&gt;
 package.reimport(&amp;lt;your module name&amp;gt;)&lt;br /&gt;
where the module name is taken from the name of the file being edited. This leads to a reload of this module without restarting the game.&lt;br /&gt;
&lt;br /&gt;
A short video of how it might look: https://youtu.be/f5s_tuAv6fc&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Development_Tools&amp;diff=4496</id>
		<title>Development Tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Development_Tools&amp;diff=4496"/>
		<updated>2023-09-15T09:13:27Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: /* Debug from in-game */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here we aim to document little known features that developers add to help themselves in the development process, wheather that be debugging, profiling, or what else&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Debug ==&lt;br /&gt;
&lt;br /&gt;
=== Compile with Debug support === &lt;br /&gt;
Build debug &lt;br /&gt;
&lt;br /&gt;
    ./bootstrap -DCMAKE_BUILD_TYPE=Debug&lt;br /&gt;
&lt;br /&gt;
You can now use debugger, like [https://felix-knorr.net/posts/2022-02-27-direct-gdb.html gdb] (for more advanced gdb tricks see [https://begriffs.com/posts/2022-07-17-debugging-gdb-ddd.html Pleasant debugging with GDB and DDD]; there's also [https://github.com/epasveer/seer GUI available] for gdb.)&lt;br /&gt;
&lt;br /&gt;
=== Document weirdness ===&lt;br /&gt;
&lt;br /&gt;
To record video from gameplay (e.g. to document unexpected behavior):&lt;br /&gt;
&lt;br /&gt;
    To record video directly from Pioneer you will need to add the line&lt;br /&gt;
    RecordVideo=1 somewhere within your config.ini file. Then once ingame&lt;br /&gt;
    you can press Ctrl+ScrLk to start or stop recording.&lt;br /&gt;
&lt;br /&gt;
=== Debug from in-game ===&lt;br /&gt;
&lt;br /&gt;
Ctrl+I open debug window&lt;br /&gt;
&lt;br /&gt;
Ctrl+F10 open planet viewer, to view selected nav target&lt;br /&gt;
&lt;br /&gt;
Ctrl+F11 reload shaders while running game&lt;br /&gt;
&lt;br /&gt;
Ctrl+Del reload pigui element, allows for live coding. Limited support: Only reloads the active view and then only if the active view has manually enabled it (add `debugReload = function() package.reimport() end` to the view's definition next to the draw and refresh functions)&lt;br /&gt;
&lt;br /&gt;
Ctrl + click &amp;quot;New Game&amp;quot; for customizing start state&lt;br /&gt;
&lt;br /&gt;
=== Debug savegame files ===&lt;br /&gt;
&lt;br /&gt;
 ./build/savegamedump savefiles/&amp;lt;mysavename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and look in your savefile folder (e.g. ~/.pioneer/savefiles on linux) at &amp;lt;mysavename&amp;gt;.json file, put JSON e.g. into http://jsonviewer.stack.hu/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debug Lua Callstack ===&lt;br /&gt;
&lt;br /&gt;
A lua callstack can also help - there's a function in lua/core/Sandbox.cpp that can be called in the debugger to get a callstack&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Misc. ===&lt;br /&gt;
&lt;br /&gt;
Pioneer can dump galaxy information, to make sure the galaxy hasn't changed, or to gather statistics, described here:&lt;br /&gt;
https://github.com/pioneerspacesim/pioneer/pull/2811&lt;br /&gt;
&lt;br /&gt;
The quit confirmation box can be supressed by putting ConfirmQuit=0 in the pioneer configuration file&lt;br /&gt;
&lt;br /&gt;
== Profiling ==&lt;br /&gt;
&lt;br /&gt;
For Profiling, one needs some tools installed?&lt;br /&gt;
&lt;br /&gt;
Now new profiling functions merged:&lt;br /&gt;
[https://github.com/pioneerspacesim/pioneer/pull/5168 Add zone-based profiling support #5168]&lt;br /&gt;
&lt;br /&gt;
There's also support for chrome://tracing format event to JSON, for better visualization, since&lt;br /&gt;
[https://github.com/pioneerspacesim/pioneer/pull/5380  Add Chrome-Tracing output support to profiler #5380]&lt;br /&gt;
&lt;br /&gt;
=== Build with profiling support ===&lt;br /&gt;
&lt;br /&gt;
ToDo edit this to improve and make sense and be correct&lt;br /&gt;
&lt;br /&gt;
Profiling: to build with the profiler enabled, simply run ./bootstrap&lt;br /&gt;
-DPROFILER_ENABLED=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo and compile as normal.&lt;br /&gt;
The latter flag is not strictly needed, but building with a BUILD_TYPE&lt;br /&gt;
&lt;br /&gt;
To-do: extract wisdome from this conversation, https://github.com/pioneerspacesim/pioneer/pull/4764 and document here&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;fluffyfreak&amp;gt; Gliese852, if you're on Windows then I use&lt;br /&gt;
                  https://github.com/VerySleepy/verysleepy a lot of the time&lt;br /&gt;
                  [17:37:07]&lt;br /&gt;
    &amp;lt;Gliese852&amp;gt; fluffyfreak: thanks, I meant the built-in profiler, it seems that&lt;br /&gt;
                if you do nothing, it creates a report on the launch of the&lt;br /&gt;
                program, and the launch of a new game [17:54:21]&lt;br /&gt;
    &amp;lt;fluffyfreak&amp;gt; If you're running the profile build then you can press Ctrl+p to&lt;br /&gt;
                  take a profile at any time [17:58:50]&lt;br /&gt;
    &amp;lt;fluffyfreak&amp;gt; hmm, been a while since I used it. There's two modes [17:59:37]&lt;br /&gt;
    &amp;lt;fluffyfreak&amp;gt; Ctrl+shift+p = is capture one frame, otherwise Ctrl+p toggles&lt;br /&gt;
                  capturing whenever the framerate is &amp;quot;slow&amp;quot; [18:00:12]&lt;br /&gt;
    &lt;br /&gt;
=== Using profiler ===&lt;br /&gt;
&lt;br /&gt;
to do&lt;br /&gt;
&lt;br /&gt;
=== clang format check ===&lt;br /&gt;
&lt;br /&gt;
    Yes, for your use you'd likely want to invoke `FORMAT_BASE=master ./autoformat` or `FORMAT_BASE=HEAD~1 ./autoformat`&lt;br /&gt;
    - there's little difference between the `autoformat` script and the `scripts/clang-format.sh` script other than the &lt;br /&gt;
    latter prompts you to automatically apply the issues in your files.&lt;br /&gt;
&lt;br /&gt;
== Editor integration ==&lt;br /&gt;
&lt;br /&gt;
There is support for sending Lua code from IDE into running pioneer session via TCP:&lt;br /&gt;
https://github.com/pioneerspacesim/pioneer/pull/3768&lt;br /&gt;
https://github.com/pioneerspacesim/pioneer/pull/4799&lt;br /&gt;
&lt;br /&gt;
=== Easy start (Linux) ===&lt;br /&gt;
&lt;br /&gt;
1. Reconfigure with remote lua console support and rebuild:&lt;br /&gt;
 ./bootstrap -DREMOTE_LUA_REPL=ON&lt;br /&gt;
 make -C build -j4&lt;br /&gt;
&lt;br /&gt;
2. Now after starting a new, or loading a saved game, you can connect to the program via telnet on port '''12345''':&lt;br /&gt;
&lt;br /&gt;
 $ telnet localhost 12345&lt;br /&gt;
 Trying 127.0.0.1...&lt;br /&gt;
 Connected to localhost.&lt;br /&gt;
 Escape character is '^]'.&lt;br /&gt;
 ** Welcome to the Pioneer Remote Debugging Console!&lt;br /&gt;
 &amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you can run any lua commands.&lt;br /&gt;
&lt;br /&gt;
=== Example of use with VIM for hot reloading of the module ===&lt;br /&gt;
&lt;br /&gt;
I added the following code to '''~/.vimrc:'''&lt;br /&gt;
 nmap ;mm :w&amp;lt;CR&amp;gt;:call PioneerReloadModuleFnc(expand(&amp;quot;%&amp;quot;))&amp;lt;CR&amp;gt;&amp;lt;CR&amp;gt;&lt;br /&gt;
 function! PioneerReloadModuleFnc(filename)&lt;br /&gt;
 	let s:data = strcharpart(a:filename, 0, 4)&lt;br /&gt;
 	let s:lua = strcharpart(a:filename, strlen(a:filename) - 3, 4)&lt;br /&gt;
 	if s:data == &amp;quot;data&amp;quot; &amp;amp;&amp;amp; s:lua == &amp;quot;lua&amp;quot;&lt;br /&gt;
 		let s:crop = strcharpart(a:filename, 5, strlen(a:filename) - 9)&lt;br /&gt;
 		let s:convert = substitute(s:crop, &amp;quot;/&amp;quot;, &amp;quot;.&amp;quot;, &amp;quot;g&amp;quot;)&lt;br /&gt;
 		let s:command = &amp;quot;package.reimport(\&amp;quot;&amp;quot; . s:convert . &amp;quot;\&amp;quot;)&amp;quot;&lt;br /&gt;
 		:execute &amp;quot;!echo '&amp;quot;. s:command . &amp;quot;' | telnet localhost 12345&amp;quot;&lt;br /&gt;
 	else&lt;br /&gt;
 		:echom &amp;quot;ERROR: file should be \&amp;quot;*.lua\&amp;quot; and in \&amp;quot;data\&amp;quot; subfolder&amp;quot;&lt;br /&gt;
 	endif&lt;br /&gt;
 endfunction&lt;br /&gt;
&lt;br /&gt;
Now when pressing the combination ''';mm''' in normal mode, the file is saved, then telnet is launched and the command is sent:&lt;br /&gt;
 package.reimport(&amp;lt;your module name&amp;gt;)&lt;br /&gt;
where the module name is taken from the name of the file being edited. This leads to a reload of this module without restarting the game.&lt;br /&gt;
&lt;br /&gt;
A short video of how it might look: https://youtu.be/f5s_tuAv6fc&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=IRC&amp;diff=4494</id>
		<title>IRC</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=IRC&amp;diff=4494"/>
		<updated>2023-09-13T17:02:00Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: Reverted edits by Zonkmachine (talk) to last revision by Impaktor&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''IRC''' stands for '''I'''nternet '''R'''elay '''C'''hat. We [https://koshka.love/babel/irc-forever.html use it] for real-time internet text messaging related to the project.&lt;br /&gt;
&lt;br /&gt;
All the engaged people from the community and the dev team can be found there, and are usually quick to answer during European day/evening time.&lt;br /&gt;
&lt;br /&gt;
== Connect ==&lt;br /&gt;
&lt;br /&gt;
As of 2021-05-26, Pioneer has moved to the [https://libera.chat/guides/ libera.chat] IRC network, which can be connected to at irc.libera.chat, port 6667 (6697 for SSL).&lt;br /&gt;
&lt;br /&gt;
We use the following channel:&lt;br /&gt;
&lt;br /&gt;
 #pioneer&lt;br /&gt;
 -This is the only and official pioneer channel&lt;br /&gt;
&lt;br /&gt;
=== Webchat ===&lt;br /&gt;
Easiest if you're new to IRC, is to just click [https://kiwiirc.com/nextclient/irc.libera.chat/?channel=#pioneer here] (or use libera's own kiwi IRC [https://web.libera.chat/#pioneer here]) which will open a webchat instance to the #pioneer channel in your browser (type message at bottom, where text indicates).&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
In order to use IRC, you should download a client program. Popular programs are:&lt;br /&gt;
&lt;br /&gt;
*[http://www.leafdigital.com/software/leafchat/ Leafchat] (multiplatform, GUI)&lt;br /&gt;
*[http://www.irssi.org/ irssi] (popular, terminal based)&lt;br /&gt;
*[http://xchat.org/ X-Chat] (free on Linux only, almost always available in distribution repositories)&lt;br /&gt;
*[http://www.hexchat.org/ HexChat] (fork of X-Chat, free on Windows and Linux, not always available in distribution repositories)&lt;br /&gt;
*[https://weechat.org/about WeeChat] (multiplatform)&lt;br /&gt;
&lt;br /&gt;
=== Channel Info ===&lt;br /&gt;
&lt;br /&gt;
The channel has a bot, in [https://pioneerwiki.com/wiki/Jameson cmd_jameson], to which one can leave messages to users who are currently not logged in. A number of users are in the channel 24/7 and check the backlog daily. Usually, the channel is quiet during CET night.&lt;br /&gt;
&lt;br /&gt;
=== IRC Backlog / Bouncer ===&lt;br /&gt;
It is possible to get channel backlog for when not logged in by using an [[Bouncer|IRC Bouncer]] that is logged into the channel as your user, and then you connect to this service, rather than directly to the IRC network (libera.chat). It will then replay the channel history since your last visit. There are [https://wiki.znc.in/Providers several znc providers] one can use. The pioneer development team is currently running one for anyone active in the channel discussions and/or in the game development, just ask devs in IRC if you are interested in an account. Once one has been made, follow [[Bouncer|instructions here]].&lt;br /&gt;
&lt;br /&gt;
== No Freenode? ==&lt;br /&gt;
Pioneer's IRC channel was on the freenode network at least from 2013-2021. However, in May of 2021, there was a [https://www.kline.sh/ hostile take over] of the freenode network, and we joined the original freenode staff, and most other channels, in moving to its spiritual successor: libera.chat. For more info, please see:&lt;br /&gt;
* [https://www.devever.net/~hl/freenode_abuse Freenode IRC operators now engaging in routine abuses of power]&lt;br /&gt;
* [https://github.com/freenode/web-7.0/commit/1194a3e71a427a669ccdddee22006416d46eeb43 freenode policy update]&lt;br /&gt;
* [https://mastodon.sdf.org/@kline/106299403921451814 andrew lee just seized over 700 channels on freenode]&lt;br /&gt;
* [https://www.gentoo.org/news/2021/05/26/gentoo-freenode-channels-hijacked.html Gentoo Freenode channels have been hijacked]&lt;br /&gt;
* [https://twitter.com/mjg59/status/1397389042619097095 More hijacking]&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=IRC&amp;diff=4492</id>
		<title>IRC</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=IRC&amp;diff=4492"/>
		<updated>2023-09-13T09:24:24Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: /* Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''IRC''' stands for '''I'''nternet '''R'''elay '''C'''hat. We [https://koshka.love/babel/irc-forever.html use it] for real-time internet text messaging related to the project.&lt;br /&gt;
&lt;br /&gt;
All the engaged people from the community and the dev team can be found there, and are usually quick to answer during European day/evening time.&lt;br /&gt;
&lt;br /&gt;
== Connect ==&lt;br /&gt;
&lt;br /&gt;
As of 2021-05-26, Pioneer has moved to the [https://libera.chat/guides/ libera.chat] IRC network, which can be connected to at irc.libera.chat, port 6667 (6697 for SSL).&lt;br /&gt;
&lt;br /&gt;
We use the following channel:&lt;br /&gt;
&lt;br /&gt;
 #pioneer&lt;br /&gt;
 -This is the only and official pioneer channel&lt;br /&gt;
&lt;br /&gt;
=== Webchat ===&lt;br /&gt;
Easiest if you're new to IRC, is to just click [https://kiwiirc.com/nextclient/irc.libera.chat/?channel=#pioneer here] (or use libera's own kiwi IRC [https://web.libera.chat/#pioneer here]) which will open a webchat instance to the #pioneer channel in your browser (type message at bottom, where text indicates).&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
In order to use IRC, you should download a client program. Popular programs are:&lt;br /&gt;
&lt;br /&gt;
*[http://www.leafdigital.com/software/leafchat/ Leafchat] (multiplatform, GUI)&lt;br /&gt;
*[http://www.irssi.org/ irssi] (popular, terminal based)&lt;br /&gt;
*[http://xchat.org/ X-Chat] (free on Linux only, almost always available in distribution repositories)&lt;br /&gt;
*[http://www.hexchat.org/ HexChat] (fork of X-Chat, free on Windows and Linux, not always available in distribution repositories)&lt;br /&gt;
*[https://weechat.org/about WeeChat] (multiplatform)&lt;br /&gt;
&lt;br /&gt;
=== Channel Info ===&lt;br /&gt;
&lt;br /&gt;
The channel has a bot, in [https://pioneerwiki.com/wiki/Jameson cmd_jameson], to which one can leave messages to users who are currently not logged in. A number of users are in the channel 24/7 and check the backlog daily. Usually, the channel is quiet during CET night.&lt;br /&gt;
&lt;br /&gt;
=== IRC Backlog / Bouncer ===&lt;br /&gt;
It is possible to get channel backlog for when not logged in by using an [[Bouncer|IRC Bouncer]] that is logged into the channel as your user, and then you connect to this service, rather than directly to the IRC network (libera.chat). It will then replay the channel history since your last visit. There are [https://wiki.znc.in/Providers several znc providers] one can use. The pioneer development team is currently running one for anyone active in the channel discussions and/or in the game development, just ask devs in IRC if you are interested in an account. Once one has been made, follow [[Bouncer|instructions here]].&lt;br /&gt;
&lt;br /&gt;
== No Freenode? ==&lt;br /&gt;
Pioneer's IRC channel was on the freenode network at least from 2013-2021. However, in May of 2021, there was a [https://www.kline.sh/ hostile take over] of the freenode network, and we joined the original freenode staff, and most other channels, in moving to its spiritual successor: libera.chat. For more info, please see:&lt;br /&gt;
* [https://www.devever.net/~hl/freenode_abuse Freenode IRC operators now engaging in routine abuses of power]&lt;br /&gt;
* [https://github.com/freenode/web-7.0/commit/1194a3e71a427a669ccdddee22006416d46eeb43 freenode policy update]&lt;br /&gt;
* [https://mastodon.sdf.org/@kline/106299403921451814 andrew lee just seized over 700 channels on freenode]&lt;br /&gt;
* [https://www.gentoo.org/news/2021/05/26/gentoo-freenode-channels-hijacked.html Gentoo Freenode channels have been hijacked]&lt;br /&gt;
* [https://twitter.com/mjg59/status/1397389042619097095 More hijacking]&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Using_git_and_GitHub&amp;diff=4491</id>
		<title>Using git and GitHub</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Using_git_and_GitHub&amp;diff=4491"/>
		<updated>2023-09-10T11:01:36Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: /* Getting other developer's branches */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Developing on pioneer means using the version control tool 'git' and the [https://github.com/ github] website. git especially has a reputation for having a steep learning curve, so here we'll try to give you enough knowledge to be dangerous!&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
A working installation of git, a GitHub account, and comfort with using the command line of your chosen operating system.&lt;br /&gt;
&lt;br /&gt;
The GitHub sign-up page is [https://github.com/signup/free here]. Make a note of your user name as you'll need it to make your local pioneer repository.&lt;br /&gt;
&lt;br /&gt;
On Linux, git is available in all distributions using the standard tools such as APT, yum or emerge. Since there is a wide range of file browsers and graphical environments, this tutorial limits itself to the command line interface.&lt;br /&gt;
&lt;br /&gt;
On Windows you have two options, [https://gitforwindows.org/ Git for Windows], or [http://windows.github.com/ Github for Windows] which is essentially msysgit but with some extra stuff bundled. Some of which is good ([https://github.com/dahlbyk/posh-git posh git]) and some of which is well, not (github's 'friendly' gui). Since both include the same command line tools and cross platform gui tools, either is fine for our purposes here. The github one may be more convenient to install.&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, git will have been installed with XCode as git is built into the XCode IDE. However, usage of git from from within an IDE isn't something I'm familiar with so isn't covered here. If you want to follow along with this document then if you elected to install the XCode command line tools, then the git commands below should work unaltered from a terminal window. If you didn't then you'll need to use &amp;lt;code&amp;gt;xcrun&amp;lt;/code&amp;gt; to run the commands in terminal, either by adding &amp;lt;code&amp;gt;xcrun&amp;lt;/code&amp;gt; in front of each of the commands or aliasing &amp;lt;code&amp;gt;git&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;gitk&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;xcrun git&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;xcrun gitk&amp;lt;/code&amp;gt; in your &amp;lt;code&amp;gt;~/.profile&amp;lt;/code&amp;gt;. Have a look at [http://www.cocoanetics.com/2012/07/you-dont-need-the-xcode-command-line-tools/ this guide] for details.&lt;br /&gt;
&lt;br /&gt;
A clear and concrete introduction to git can be seen at this [https://rogerdudler.github.io/git-guide/ Git Guide]&lt;br /&gt;
&lt;br /&gt;
=== Configure git to sane global settings ===&lt;br /&gt;
&lt;br /&gt;
First we need to [http://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration configure] git some. You probably want to run these commands:&lt;br /&gt;
&lt;br /&gt;
   git config --global user.name &amp;quot;Your Name&amp;quot;&lt;br /&gt;
   git config --global user.email &amp;quot;you@example.com&amp;quot;&lt;br /&gt;
   git config --global color.ui true&lt;br /&gt;
   git config --global push.default simple&lt;br /&gt;
&lt;br /&gt;
Note, that each commit you do will be stamped by your name and email entered here.&lt;br /&gt;
&lt;br /&gt;
Also, in our [[Coding Conventions]] we use 4 width tab indentation, but the &amp;quot;git diff&amp;quot; and &amp;quot;git show&amp;quot; tools assume 8 character wide tabs. This is fixed by:&lt;br /&gt;
&lt;br /&gt;
   git config --global core.pager 'less -x1,5'&lt;br /&gt;
&lt;br /&gt;
(the cryptic numbers are due to git using the first column for &amp;quot;+&amp;quot;/&amp;quot;-&amp;quot; to show inserted or removed lines)&lt;br /&gt;
&lt;br /&gt;
== Creating your pioneer repositories ==&lt;br /&gt;
&lt;br /&gt;
Git, as a version control system, stores all source files for Pioneer (or any other project you've chosen to manage with git) along with their histories in '''repositories''' (usually shortened to just 'repos'). These are areas of a computer's file system where has git has been told to track and manage changes to the files placed in them.&lt;br /&gt;
&lt;br /&gt;
There are three different repositories that you mainly deal with when developing pioneer.&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;upstream&amp;lt;/code&amp;gt; repo. This is the main Pioneer repository stored on GitHub. This is read-only except to the core team (and even they don't do their development there).&lt;br /&gt;
*The &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt; repo. This is a public Pioneer repository personal to you, but stored on GitHub under your username, so other people can see the changes put into it. This is read-only to everyone except you.&lt;br /&gt;
*The &amp;lt;code&amp;gt;local&amp;lt;/code&amp;gt; repo. This is your personal Pioneer repository on your computer, not accessible by anyone else.&lt;br /&gt;
&lt;br /&gt;
Before you can start developing you need to setup both your Pioneer &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;local&amp;lt;/code&amp;gt; repositories.&lt;br /&gt;
&lt;br /&gt;
=== Your origin repository ===&lt;br /&gt;
&lt;br /&gt;
Your &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt; repository you make on GitHub. To do that, make sure that you're logged in there and go to the main [https://github.com/pioneerspacesim/pioneer GitHub Pioneer page] in your web browser, and click the 'Fork' button at the top of that page: [[File:ForkPioneer.png|RTENOTITLE]]&lt;br /&gt;
&lt;br /&gt;
GitHub will clank and whirr as it makes a copy of the main Pioneer repo under your username. Eventually it will finish, and you'll end up on page almost exactly like the main GitHub Pioneer page, but instead of being named &amp;lt;code&amp;gt;pioneerspacesim/pioneer&amp;lt;/code&amp;gt; your copy is named &amp;lt;code&amp;gt;&amp;amp;lt;your github user name&amp;amp;gt;/pioneer&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Having made your &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt; repo, you're now ready to make your local one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Your local repository ===&lt;br /&gt;
&lt;br /&gt;
You make your &amp;lt;code&amp;gt;local&amp;lt;/code&amp;gt; repository by cloning a copy of your new &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt; repository to your local machine.&lt;br /&gt;
&lt;br /&gt;
At the command line, navigate to where on your filesystem you want to put your local git repos. For instance on Linux I put mine in &amp;lt;code&amp;gt;~/repos&amp;lt;/code&amp;gt; whilst on Windows I put them in &amp;lt;code&amp;gt;c:\develop\github-repos&amp;lt;/code&amp;gt;. You can move the folder at a later time without breaking anything. Once you're there execute the following command replacing &amp;lt;code&amp;gt;your_username&amp;lt;/code&amp;gt; with, well, your github username.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 git clone git://github.com/your_username/pioneer.git]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Just like clicking Fork on the main Pioneer GitHub repo made a clone of it under your GitHub account, this makes a clone of that clone to your local machine. Expect this to take some time, just like before, as it copies all the files and the complete history of the project to your filesystem, only now it's sucking the data from GitHub to your machine, rather than copying things around within GitHub's data centre (so it will probably take even longer; however, a modern coputer does it on the order of minutes).&lt;br /&gt;
&lt;br /&gt;
Eventually this operation will complete, and you'll have a shiny new directory named &amp;lt;code&amp;gt;pioneer&amp;lt;/code&amp;gt; which git -- with a little encouragement -- will manage for you, your &amp;lt;code&amp;gt;local&amp;lt;/code&amp;gt; repo.&lt;br /&gt;
&lt;br /&gt;
We're almost done with repository setup, but there is one more thing we need to attend to. When you did &amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt;, it automatically set &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt; to point to your Pioneer repository on GitHub. However it didn't set &amp;lt;code&amp;gt;upstream&amp;lt;/code&amp;gt; to point the main Pioneer Repository. We'll need to do that manually.&lt;br /&gt;
&lt;br /&gt;
We must to be inside the repository to do this, in fact all the git commands from now on, you need to be inside a repository to execute any of the git commands shown. So enter the pioneer repository directory, before doing:&lt;br /&gt;
&lt;br /&gt;
 git remote add upstream [git://github.com/pioneerspacesim/pioneer.git git://github.com/pioneerspacesim/pioneer.git]&lt;br /&gt;
&lt;br /&gt;
...to define &amp;lt;code&amp;gt;upstream&amp;lt;/code&amp;gt; as the main Pioneer repository. You'll notice you defined &amp;lt;code&amp;gt;upstream&amp;lt;/code&amp;gt; as a &amp;lt;code&amp;gt;remote&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt; is also defined as a &amp;lt;code&amp;gt;remote&amp;lt;/code&amp;gt;. We'll explain more about remotes later on.&lt;br /&gt;
&lt;br /&gt;
You can now view the result of our commands, i.e. see how we link the &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt; to your git repo, and upstream to the central pioneer repository.&lt;br /&gt;
&lt;br /&gt;
 git remote -v&lt;br /&gt;
&lt;br /&gt;
or for more details&lt;br /&gt;
&lt;br /&gt;
 git remote show origin&lt;br /&gt;
&lt;br /&gt;
== Basic operations ==&lt;br /&gt;
&lt;br /&gt;
At this point you might want to consider searching for tutorials. There are many good ones on git out there. [http://marklodato.github.io/visual-git-guide/index-en.html Here] is a nice visual representation of different commands, which might be helpful. Basic git tutorials on youtube: [https://www.youtube.com/watch?v=vaNGbk6HN9Y part 0], [https://www.youtube.com/watch?v=DQUcmNO4diQ part 1]. Below follows a few commands you will be using a lot, and be familiar with, but first make sure to delve into some tutorials. Git is a vast subject.&lt;br /&gt;
&lt;br /&gt;
Show documentation of command&lt;br /&gt;
&lt;br /&gt;
 git help &amp;lt;command&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create branch...&lt;br /&gt;
&lt;br /&gt;
 git branch &amp;lt;branch-name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
...and move into it:&lt;br /&gt;
&lt;br /&gt;
 git checkout &amp;lt;branch-name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or do both in one go&lt;br /&gt;
&lt;br /&gt;
 git checkout -b &amp;lt;branch-name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check what files have been changed (red), and which have been staged for commit (green)&lt;br /&gt;
&lt;br /&gt;
 git status&lt;br /&gt;
&lt;br /&gt;
Add new or changed/modified file to be &amp;quot;staged&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 git add &amp;lt;file&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and commit it (sometimes it's good to check &amp;quot;git status&amp;quot; first, to see what is staged)&lt;br /&gt;
&lt;br /&gt;
 git commit&lt;br /&gt;
&lt;br /&gt;
Or do it all in one go (this will not add new files, just changed, already tracked files)&lt;br /&gt;
&lt;br /&gt;
 git commit -a&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
 git commit -am &amp;quot;This is my commit message&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The two above commands (i.e. &amp;quot;git commit -a&amp;quot;) will commit all changes seen when running the highly useful&lt;br /&gt;
&lt;br /&gt;
 git diff&lt;br /&gt;
&lt;br /&gt;
=== Show information ===&lt;br /&gt;
&lt;br /&gt;
Investigating what you've done is always very useful, and instructive when learning git. To show your un-staged changes (changes not staged for commit)&lt;br /&gt;
&lt;br /&gt;
 git diff&lt;br /&gt;
&lt;br /&gt;
One of the most used commands might be to list the commit history&lt;br /&gt;
&lt;br /&gt;
 git log&lt;br /&gt;
 git log -p &amp;lt;file&amp;gt;&lt;br /&gt;
 git log --oneline --graph&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
 git show HEAD&lt;br /&gt;
 git show &amp;lt;commit&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or N commits back in history&lt;br /&gt;
&lt;br /&gt;
 git show HEAD~&amp;lt;N&amp;gt;&lt;br /&gt;
&lt;br /&gt;
List local branches&lt;br /&gt;
&lt;br /&gt;
 git branch&lt;br /&gt;
&lt;br /&gt;
List local branches, and show last commit on each&lt;br /&gt;
&lt;br /&gt;
 git branch -v&lt;br /&gt;
&lt;br /&gt;
List local and remote (origin) branches, and show last commit on each&lt;br /&gt;
&lt;br /&gt;
 git branch -va&lt;br /&gt;
&lt;br /&gt;
This is a nice graphical interface to git, that you might prefer&lt;br /&gt;
&lt;br /&gt;
 gitk&lt;br /&gt;
&lt;br /&gt;
=== Common fixes for mistakes ===&lt;br /&gt;
&lt;br /&gt;
Here we outline highly useful knowledge for fixing very common mistakes or situations you will find often yourself in.&lt;br /&gt;
&lt;br /&gt;
It's common to want to add/change or reword the last commit, simply &amp;lt;code&amp;gt;git add&amp;lt;/code&amp;gt; if any changes and&lt;br /&gt;
&lt;br /&gt;
 git commit --amend&lt;br /&gt;
&lt;br /&gt;
If you realize you did &amp;lt;code&amp;gt;git add&amp;lt;/code&amp;gt; on a file that should not be included in the commit you are about to do, then un-stage it by:&lt;br /&gt;
&lt;br /&gt;
 git reset HEAD&lt;br /&gt;
&lt;br /&gt;
If you need to undo a commit you have already made simply reset the branch to one step back&lt;br /&gt;
&lt;br /&gt;
 git reset HEAD~&lt;br /&gt;
&lt;br /&gt;
or equivalently&lt;br /&gt;
&lt;br /&gt;
 git reset HEAD~1&lt;br /&gt;
&lt;br /&gt;
These reset commands only operates on the git record, not removing any changed files from your hard drive.&lt;br /&gt;
&lt;br /&gt;
If you already pushed the old commit to &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt; (your github), then you need to do a forced push&lt;br /&gt;
&lt;br /&gt;
 git push -f origin &lt;br /&gt;
&lt;br /&gt;
== Updating your branches ==&lt;br /&gt;
&lt;br /&gt;
Makes no changes on your local copy, but reads in what changes there are upstream. A safe command.&lt;br /&gt;
&lt;br /&gt;
 git fetch upstream&lt;br /&gt;
&lt;br /&gt;
Or read in changes in all branches, and &amp;lt;code&amp;gt;-p&amp;lt;/code&amp;gt; to purge, i.e. remove the lingering memory of branches that have been removed in origin&lt;br /&gt;
&lt;br /&gt;
 git fetch --all -p&lt;br /&gt;
&lt;br /&gt;
Now we know what changes have been made to &amp;lt;code&amp;gt;upstream&amp;lt;/code&amp;gt;, i.e. Pioneer space sims's master branch. Now to apply them to your master&lt;br /&gt;
&lt;br /&gt;
 git checkout master&lt;br /&gt;
 git merge upstream/master&lt;br /&gt;
&lt;br /&gt;
Which is the same as&lt;br /&gt;
&lt;br /&gt;
 git pull upstream master&lt;br /&gt;
&lt;br /&gt;
Now, your local master (on your HDD) is synced with upstream (Pioneer's), but you probably want to update your github, &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt;, master branch as well:&lt;br /&gt;
&lt;br /&gt;
 git push origin master&lt;br /&gt;
&lt;br /&gt;
=== Doing a hard reset ===&lt;br /&gt;
&lt;br /&gt;
If you feel you've messed up your master branch, and just want to &amp;quot;start over&amp;quot;, or get a clean copy from upstream Pioneer, you can do a hard reset. However, be ware that this is a dangerous command, as it will remove any changes on the branch it is run from and make it identical to whatever you reset it to.&lt;br /&gt;
&lt;br /&gt;
 git checkout master&lt;br /&gt;
 git fetch --all&lt;br /&gt;
 git reset --hard upstream/master&lt;br /&gt;
&lt;br /&gt;
or if you want to reset your branch &amp;lt;code&amp;gt;my-branch&amp;lt;/code&amp;gt; to how it looks in your github&lt;br /&gt;
&lt;br /&gt;
 git reset --hard origin/my-branch&lt;br /&gt;
&lt;br /&gt;
Next, since a hard reset completely rewrites the commit history, when you push your updated master (or whatever branch), to origin, it might say that the two branches have conflicting history, thus you need to force push your fresh copy&lt;br /&gt;
&lt;br /&gt;
 git push -f origin master&lt;br /&gt;
&lt;br /&gt;
== Pushing branch (smart way) ==&lt;br /&gt;
&lt;br /&gt;
Normally to push your commit to your github, you might do:&lt;br /&gt;
&lt;br /&gt;
 git push origin &amp;lt;branch name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, it would be nice if your branch on your local git (on your HDD) and your origin (your github) know about each other, that they are the same. Luckily git allows this, by &amp;quot;tracking&amp;quot; the branch thus, typically the first time you push commits in your local branch to github you tell github to track it&lt;br /&gt;
&lt;br /&gt;
 git push --set-upstream origin &amp;lt;branch name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or shorter&lt;br /&gt;
&lt;br /&gt;
 git push origin &amp;lt;branch name&amp;gt; -u&lt;br /&gt;
&lt;br /&gt;
Now, whenever you do the following commands from a tracked branch&lt;br /&gt;
&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
 git pull&lt;br /&gt;
&lt;br /&gt;
it will be from your local &amp;amp;lt;branch-foo&amp;amp;gt; to its remote copy on origin (github). Also, git will show which branch is ahead of which&lt;br /&gt;
&lt;br /&gt;
 git branch -vva&lt;br /&gt;
&lt;br /&gt;
== Resolving Conflicts ==&lt;br /&gt;
&lt;br /&gt;
Conflicts happen when git tries to apply a commit and that commit changes code on the same or neighboring lines of code as some other commit that it's trying to merge with. Typically this can happen when issuing commands such as &amp;lt;code&amp;gt;cherry-pick&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rebase&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;merge&amp;lt;/code&amp;gt;. Once you get the hang of it, they're easy to resolve. Just read the error message git spits out, and run&lt;br /&gt;
&lt;br /&gt;
 git status&lt;br /&gt;
&lt;br /&gt;
It will show some files that need to be manually edited. In the file it will show both versions of the lines conflicting. Edit the file to the way it should be then &amp;lt;code&amp;gt;git add &amp;amp;lt;file&amp;amp;gt;&amp;lt;/code&amp;gt; and then &amp;lt;code&amp;gt;git commit&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Making a pull request ==&lt;br /&gt;
&lt;br /&gt;
Make a branch, push it to your Github repository, and you will get a &amp;quot;Compare / Open Pull Request&amp;quot; button when viewing your branch on your Github account if logged in. Press it, and write a description of the changes you've made. Mention what improves by the changes made in the pull request. (For more, see github documentat [https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork here]). Also see [https://www.atlassian.com/git/tutorials/making-a-pull-request this tutorial].&lt;br /&gt;
&lt;br /&gt;
== Fixing/Updating your pull request ==&lt;br /&gt;
&lt;br /&gt;
This addresses the case where you have opened a pull request on Github, only to realize (by yourself, or through a reviewer giving feedback) that you need to change something. Conveniently, Github tracks your branch so any change to it will also update the commits in your pull request.&lt;br /&gt;
&lt;br /&gt;
For example, you make some new change to your branch, add and commit them:&lt;br /&gt;
&lt;br /&gt;
 git commit -am &amp;quot;this is an additional commit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then just push it to your branch:&lt;br /&gt;
&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
(Note: this assumes your local branch is set up to track your Github branch)&lt;br /&gt;
&lt;br /&gt;
However, doing it like this is only recommended if the new commit actually adds something new to the branch, where it is logical to have it as a separate commit. If it is a bug fix for a previous commit in the same pull request, there is no need for us to see it in the master branch of pioneer once it is merged. Thus the following two subsections describe how to fix the commit log / history.&lt;br /&gt;
&lt;br /&gt;
=== Update / change last commit ===&lt;br /&gt;
&lt;br /&gt;
The first case is the simplest: if you just want to change the last commit in your branch, because you realized some file was missing, or needed an edit.&lt;br /&gt;
&lt;br /&gt;
Make your change, then run &amp;quot;git add&amp;quot; on the changed files. Now update the last commit by:&lt;br /&gt;
&lt;br /&gt;
 git add &amp;lt;changed_file&amp;gt;&lt;br /&gt;
 git commit --amend&lt;br /&gt;
&lt;br /&gt;
And push to your Github, but since the hash id of the last commit has changed, you need to force it&lt;br /&gt;
&lt;br /&gt;
 git push -f&lt;br /&gt;
&lt;br /&gt;
Done. &lt;br /&gt;
&lt;br /&gt;
Note this also lets you reword the commit message.&lt;br /&gt;
&lt;br /&gt;
=== Update / change commit in middle of the branch of the pull request ===&lt;br /&gt;
&lt;br /&gt;
The second case covers if you need to edit commits further back in the commit history, or change order of commits or any other change.&lt;br /&gt;
&lt;br /&gt;
The example case we use here has a git log looking like so:&lt;br /&gt;
&lt;br /&gt;
 git log --oneline&lt;br /&gt;
 dd34lqe added final feature D&lt;br /&gt;
 cc5369b added third feature C&lt;br /&gt;
 bb1ed97 added second feature B&lt;br /&gt;
 a528f11 added initial feature A&lt;br /&gt;
&lt;br /&gt;
Now you want to fix a bug in your second commit for feature &amp;quot;B&amp;quot;. Make your changes in your local branch, add them and commit. Your structure will now look like:&lt;br /&gt;
&lt;br /&gt;
 git log --oneline&lt;br /&gt;
 98a9832 my bugfix for feature B&lt;br /&gt;
 dd34lqe added final feature D&lt;br /&gt;
 cc5369b added third feature C&lt;br /&gt;
 bb1ed97 added second feature B&lt;br /&gt;
 a528f11 added initial feature A&lt;br /&gt;
&lt;br /&gt;
The bug fix commit is redundant to see in the git log once in master, so we want to merge the bug fix commit with &amp;quot;bb1ed97 my second feature B&amp;quot; commit, so that ''no one will ever know there was a bug in the first place''! You do this by &amp;quot;rebasing&amp;quot; your branch.&lt;br /&gt;
&lt;br /&gt;
 git rebase -i a528f11&lt;br /&gt;
&lt;br /&gt;
This opens the rebase dialogue in your default editor for git (usually vim, emacs, or nano). It will show you the git history for all commits after (i.e. excluding) the commit a528f11 (&amp;quot;added initial feature A&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
You will see in the editor something like this (don't be confused by the reverse order compared to git log command):&lt;br /&gt;
&lt;br /&gt;
 pick bb1ed97 added second feature B &lt;br /&gt;
 pick cc5369b added third feature C  &lt;br /&gt;
 pick dd34lqe added final feature D  &lt;br /&gt;
 pick 98a9832 my bugfix for feature B&lt;br /&gt;
 &lt;br /&gt;
 # Commands:&lt;br /&gt;
 #  p, pick = use commit&lt;br /&gt;
 #  r, reword = use commit, but edit the commit message&lt;br /&gt;
 #  e, edit = use commit, but stop for amending&lt;br /&gt;
 #  s, squash = use commit, but meld into previous commit&lt;br /&gt;
 #  f, fixup = like &amp;quot;squash&amp;quot;, but discard this commit's log message&lt;br /&gt;
 #  x, exec = run command (the rest of the line) using shell&lt;br /&gt;
 #&lt;br /&gt;
 # These lines can be re-ordered; they are executed from top to bottom.&lt;br /&gt;
 #&lt;br /&gt;
 # If you remove a line here THAT COMMIT WILL BE LOST.&lt;br /&gt;
 #&lt;br /&gt;
 # However, if you remove everything, the rebase will be aborted.&lt;br /&gt;
 #&lt;br /&gt;
 # Note that empty commits are commented out&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Now just move the last line to be just below the commit we want it to fix, and mark it as a &amp;quot;fixup&amp;quot;, which will merge it into the commit above it, and use its commit message:&lt;br /&gt;
&lt;br /&gt;
 pick bb1ed97 added second feature B &lt;br /&gt;
 fixup 98a9832 my bugfix for feature B&lt;br /&gt;
 pick cc5369b added third feature C  &lt;br /&gt;
 pick dd34lqe added final feature D  &lt;br /&gt;
&lt;br /&gt;
Save, and quit, and hopefully git will report that the rebase was successful, and your git history will now be clean, but the commit hash (and code) for the &amp;quot;B feature&amp;quot; has changed, thus we need to force push the change to Github.&lt;br /&gt;
&lt;br /&gt;
 git log --oneline&lt;br /&gt;
 dd34lqe added final feature D&lt;br /&gt;
 cc5369b added third feature C&lt;br /&gt;
 qq9860d added second feature B&lt;br /&gt;
 a528f11 added initial feature A&lt;br /&gt;
&lt;br /&gt;
 git push -f&lt;br /&gt;
&lt;br /&gt;
(again assuming your local branch is tracking the Github repo)&lt;br /&gt;
&lt;br /&gt;
=== Resolving Merge Conflicts ===&lt;br /&gt;
&lt;br /&gt;
Sometimes while you're working on a Pull Request other code will be merged into master that touches a file you've been working on. 90% of the time there's nothing you need to do, but occasionally git can't simply resolve the two changes and you'll need to manually update your code.&lt;br /&gt;
&lt;br /&gt;
The easiest way to update your branch with the changes from master is called a &amp;quot;merge commit&amp;quot;, where you merge in the changes from master to your local branch. '''DON'T DO THIS'''. It creates a messy history and makes it extremely difficult to review your pull request, as there's now two copies of those changes to the master branch.&lt;br /&gt;
&lt;br /&gt;
Instead, please run a git rebase on your local branch to keep the pull request changes small and ensure it can be easily merged:&lt;br /&gt;
&lt;br /&gt;
 git fetch upstream master&lt;br /&gt;
 git rebase -i master&lt;br /&gt;
&lt;br /&gt;
== Getting other developer's branches ==&lt;br /&gt;
&lt;br /&gt;
If you want to get a copy of a branch from another developer, be that to test it, or to &amp;lt;code&amp;gt;cherry-pick&amp;lt;/code&amp;gt; (covered elsewhere) commits into your own branch.&lt;br /&gt;
&lt;br /&gt;
First make a branch from your master, and jump into it. It can be named whatever.&lt;br /&gt;
&lt;br /&gt;
 git checkout -b &amp;lt;branch-name&amp;gt; master&lt;br /&gt;
&lt;br /&gt;
Now pull the code in from the developer's branch named &amp;lt;code&amp;gt;&amp;amp;lt;dev-branch&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 git pull https://github.com/&amp;lt;developer-user-name&amp;gt;/pioneer.git &amp;lt;dev-branch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If there is a conflict, to accept all their changes:&lt;br /&gt;
&lt;br /&gt;
 git pull -s recursive -X theirs https://github.com/&amp;lt;developer-user-name&amp;gt;/pioneer.git &amp;lt;dev-branch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If it's a developer you will often want to pull code from you can add him/her to your remote, just like you did with your own github &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt; and Pioneer's &amp;lt;code&amp;gt;upstream&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 git remote -v&lt;br /&gt;
&lt;br /&gt;
add a new one, named &amp;lt;code&amp;gt;&amp;amp;lt;remote&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 git remote add &amp;lt;remote&amp;gt; &amp;lt;url&amp;gt;&lt;br /&gt;
 git remote update&lt;br /&gt;
 git checkout -b &amp;lt;branch-name&amp;gt; --track &amp;lt;remote&amp;gt;/&amp;lt;remote-branch-name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Keeping things tidy ==&lt;br /&gt;
&lt;br /&gt;
If branch is merged into master then it can safely be deleted&lt;br /&gt;
&lt;br /&gt;
 git branch -d &amp;lt;branch-name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If branch is not in master, then a force remove can be made&lt;br /&gt;
&lt;br /&gt;
 git branch -D &amp;lt;branch-name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 git push origin&amp;amp;nbsp;:&amp;lt;branch-name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 git clean -n&lt;br /&gt;
&lt;br /&gt;
 git clean -f&lt;br /&gt;
&lt;br /&gt;
== Cherry picking ==&lt;br /&gt;
&lt;br /&gt;
If wanting a commit from someone else, e.g. to add to your own branch, you can pull down their branch to your machine, then from the branch you want it to, just do:&lt;br /&gt;
&lt;br /&gt;
 git cherry-pick &amp;lt;commit-hash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To actually do the &amp;quot;pulling down&amp;quot; of their branch to your machine:&lt;br /&gt;
&amp;lt;pre&amp;gt;git remote add dev-username git://path/to/dev-username/repo.git&lt;br /&gt;
git fetch dev-username&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might also be inetersted in following future changes in dev-username's branch:&lt;br /&gt;
&amp;lt;pre&amp;gt;git checkout --track dev-username/foo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, another useful tool, for those graphically inclined is:&lt;br /&gt;
&lt;br /&gt;
 gitk&lt;br /&gt;
&lt;br /&gt;
'''Warning''': cherry picking, although sometimes useful, can cause problems for other developers if you use them on commits that have already been published to github. Be careful and give sufficient warnings if you find you needing to use them in that situation.&lt;br /&gt;
&lt;br /&gt;
== Pushing to upstream Pioneer master ==&lt;br /&gt;
&lt;br /&gt;
So you have working knowledge of git, and have been deemed not (too) crazy to be given commit access to the pioneer source? Welcome! As this means you can merge your own -- and others -- code into pioneer master, there are a few things you might want to know.&lt;br /&gt;
&lt;br /&gt;
=== Guidelines for merge etiquette ===&lt;br /&gt;
&lt;br /&gt;
The power to merge code on to a common code base requires mutual respect among the developers, and [https://en.wikipedia.org/wiki/Fingerspitzengefühl fingerspitzengefühl] based on the knowledge they have of each other, such as what their typical response time is, and where their area of expertise, and (code) interest/disinterests lies. If these principles were put into writing they might look something like the following:&lt;br /&gt;
&lt;br /&gt;
*You still need to open pull requests (PR), and hold them open long enough for other developers to have a fair chance to have time to voice their opinion, and possibly/occasionally review it. Don't count on the latter though, you're responsible for what you break, and you are now expected to review your own code.&lt;br /&gt;
&lt;br /&gt;
*An instant merge of a PR can be done from time to time when the change is trivial, and obviously &amp;quot;good&amp;quot;, and/or working on code that is &amp;quot;your private realm&amp;quot; of the pioneer source, and/or when you or other person needs a feature in master as soon as possible, for the next build.&lt;br /&gt;
&lt;br /&gt;
*Also, you may push a commit directly to master, with no PR, if the change is ''very'' trivial one-liner, for instance fixing a very silly error in just merged code.&lt;br /&gt;
&lt;br /&gt;
*You may ''not'' ever do a forced push to pioneer master.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How to merge a PR the proper/pedantic way ===&lt;br /&gt;
&lt;br /&gt;
For those with push access to https://github.com/pioneerspacesim/pioneer this is one way to push code to master. First make sure you have a resonable setup:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 git remote -v&lt;br /&gt;
  origin	https://github.com/myusername/pioneer.git (fetch)&lt;br /&gt;
  origin	https://github.com/myusername/pioneer.git (push)&lt;br /&gt;
  upstream	https://github.com/pioneerspacesim/pioneer.git (fetch)&lt;br /&gt;
  upstream	https://github.com/pioneerspacesim/pioneer.git (push)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also, it might be a god idea to clean your master branch, so you know it is identical to pioneer upstream, but do be warned, this will wipe your master branch, thus if you have commits that are not in their own branches, they will be lost (but retrievable through git reflog):&lt;br /&gt;
&lt;br /&gt;
  git checkout master&lt;br /&gt;
  git reset --hard upstream/master&lt;br /&gt;
&lt;br /&gt;
(For future merges, a simple git pull will suffice, if you've kept your master branch clean)&lt;br /&gt;
&lt;br /&gt;
Now get the branch from the contributor to your computer, by creating an aptly named branch, and then pulling the code from the contributor to this branch.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 git checkout -b name_of_branch_to_create&lt;br /&gt;
 git pull https://github.com/contributor_username/pioneer.git name_of_branch_user_has&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now switch to your master, and merge it in, here we asume the branch you created was called &amp;quot;feature_branch&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 git checkout master&lt;br /&gt;
 git merge --no-commit --no-ff feature_branch&lt;br /&gt;
&lt;br /&gt;
Document changes to Changelog.txt, then add it, so from the pioneer root folder, the path to Changelog wold just be:&lt;br /&gt;
&lt;br /&gt;
 git add Changelog.txt&lt;br /&gt;
 git commit &lt;br /&gt;
&lt;br /&gt;
This has now included the Changelog edit into the merge commit. Now do a dry run:&lt;br /&gt;
&lt;br /&gt;
 git push upstream master --dry-run&lt;br /&gt;
&lt;br /&gt;
Check that the right commits will be pushed with&lt;br /&gt;
&lt;br /&gt;
 git log&lt;br /&gt;
&lt;br /&gt;
And let us do it for real this time:&lt;br /&gt;
&lt;br /&gt;
 git push upstream master&lt;br /&gt;
&lt;br /&gt;
Please note: NEVER do a force push to pioneer master!&lt;br /&gt;
&lt;br /&gt;
== Advanced ==&lt;br /&gt;
&lt;br /&gt;
Collecting some advanced tricks for developers&lt;br /&gt;
&lt;br /&gt;
=== Push commit to someones PR ===&lt;br /&gt;
&lt;br /&gt;
If you have push access to pioneer repo, then you also have push access to other contributor's pull requests.&lt;br /&gt;
&lt;br /&gt;
Get the user's PR into a branch as usual:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  git checkout -b some_user-feature_branch master&lt;br /&gt;
  git pull https://github.com/some_user/pioneer.git feature_branch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
make your changes, now push:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  git push https://github.com/some_user/pioneer.git some_user-feature_branch:feature_branch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== PR trick ===&lt;br /&gt;
&lt;br /&gt;
For developers, or anyone interested, this trick will pull down all the pull requests from github, so you can easily switch to pull request, say, #1234 by doing&lt;br /&gt;
&lt;br /&gt;
  git checkout refs/pull/upstream/1234&lt;br /&gt;
&lt;br /&gt;
=== Be a git pedantic? ===&lt;br /&gt;
Writing good [https://github.com/RomuloOliveira/commit-messages-guide commit messages], and being pedantic has its values.&lt;br /&gt;
&lt;br /&gt;
== Links and resources ==&lt;br /&gt;
* [https://github.com/k88hudson/git-flight-rules git-flight-rules] Lots of examples, and links to further resources&lt;br /&gt;
* [https://ohshitgit.com/ Oh shit, git!] Fixing common mistakes in git&lt;br /&gt;
* [https://git-rebase.io/ git rebase in depth] Good guide on how to clean up/fix your git commit history&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Bouncer&amp;diff=4489</id>
		<title>Bouncer</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Bouncer&amp;diff=4489"/>
		<updated>2023-08-27T15:45:18Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: /* Log in in from multiple devices */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is a Bouncer? ==&lt;br /&gt;
&lt;br /&gt;
The [https://wiki.znc.in/ZNC IRC Bouncer] will create an alternative IRC server, that will keep your nick perpetually logged in to a set of channels (like #pioneer) and IRC networks (like Libera.chat), as determined by a configuration done in the [http://191.101.80.52:1025 web-interface] of the bouncer service.&lt;br /&gt;
&lt;br /&gt;
The user will then log into the bouncer's IRC network, rather than directly to e.g. Libera.chat. The user will then get a playback of all the history in all the channels since their last visit.&lt;br /&gt;
&lt;br /&gt;
Important: When shutting down your computer/IRC client, do not manually leave the channel, instead, simply close your IRC-client, or disconnect from the IRC bouncer's network. That will keep your nick logged in,and start saving history until next time you connect.&lt;br /&gt;
&lt;br /&gt;
== How to set it up ==&lt;br /&gt;
&lt;br /&gt;
When you're given an account on the bouncer, you will be given a username and password, let's call them &amp;quot;znc-user&amp;quot; and &amp;quot;znc-password&amp;quot;. We have configured it for you to be logged into #pioneer, with your usual nick. You can verify, and configure it by [http://191.101.80.52:1025/ logging in to it], using the new credentials. At a minimum you should change the znc-password you were given.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to connect ==&lt;br /&gt;
&lt;br /&gt;
Instead of connecting to libera.chat on port 6667, you will have to connect to the bouncer instead: 191.101.80.52, on port 1025. Instead of logging in with your nickserv nickname, you use the given one:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;znc-user&amp;gt;/network:&amp;lt;znc-password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(&amp;quot;network&amp;quot; here is the name set in the bouncer configuration, e.g. &amp;quot;Libera&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Log in from multiple devices ===&lt;br /&gt;
&lt;br /&gt;
The pioneer znc server supports the [https://wiki.znc.in/Clientbuffer clientbuffer] (and [https://github.com/jpnurmi/znc-playback playback]) modules for using the service from multiple devices, such that the user can have separate playback buffers for each device. You can set it up (add/remove/list devices) by sending the following messages in IRC (when logged in through the bouncer, as described in previous paragraph):&lt;br /&gt;
&lt;br /&gt;
    /msg *clientbuffer AddClient &amp;lt;device-name&amp;gt;&lt;br /&gt;
    /msg *clientbuffer DelClient &amp;lt;device-name&amp;gt;&lt;br /&gt;
    /msg *clientbuffer ListClients&lt;br /&gt;
&lt;br /&gt;
And then you log in to IRC by using&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;znc-user&amp;gt;@&amp;lt;device-name&amp;gt;/network:&amp;lt;znc-password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
For this example, your regular IRC nick in #pioneer is &amp;quot;Anakin&amp;quot;. It is registered with NickServ, to belong only to you. You usually login to IRC, by using these. For example, in Emacs IRC client:&lt;br /&gt;
&lt;br /&gt;
    (erc :server &amp;quot;irc.libera.chat&amp;quot; :port 6667 :nick &amp;quot;Anakin&amp;quot; :password &amp;quot;theforce&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
For using the bouncer, you now use the znc-user and znc-password, and a different server &amp;amp; port, such that the relative changes are (again for Emacs IRC Client, for your specific IRC client make the suitable changes):&lt;br /&gt;
&lt;br /&gt;
    (erc :server &amp;quot;191.101.80.52&amp;quot; :port 1025 :nick &amp;quot;Anakin&amp;quot; :password &amp;quot;skywalker/Libera:Joshua&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Then (optional? / possibly first time only?) authenticate your usual nick name registered with nickserv, by sending the following message:&lt;br /&gt;
&lt;br /&gt;
    /msg NickServ IDENTIFY Anakin theforce&lt;br /&gt;
&lt;br /&gt;
You can also send message to the bouncer, to register your computer and phone as a two separate devices:&lt;br /&gt;
&lt;br /&gt;
    /msg *clientbuffer AddClient computer&lt;br /&gt;
    /msg *clientbuffer AddClient phone&lt;br /&gt;
    /msg *clientbuffer ListClients&lt;br /&gt;
&lt;br /&gt;
You will then always use (from your computer):&lt;br /&gt;
&lt;br /&gt;
    (erc :server &amp;quot;191.101.80.52&amp;quot; :port 1025 :nick &amp;quot;Anakin&amp;quot; :password &amp;quot;skywalker@computer/Libera:Joshua&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
to login to the bouncer using your IRC client. It will then playback the channel history since you last logged in using your &amp;quot;computer&amp;quot; device.&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Bouncer&amp;diff=4488</id>
		<title>Bouncer</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Bouncer&amp;diff=4488"/>
		<updated>2023-08-27T15:45:07Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: /* What is a Bouncer? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is a Bouncer? ==&lt;br /&gt;
&lt;br /&gt;
The [https://wiki.znc.in/ZNC IRC Bouncer] will create an alternative IRC server, that will keep your nick perpetually logged in to a set of channels (like #pioneer) and IRC networks (like Libera.chat), as determined by a configuration done in the [http://191.101.80.52:1025 web-interface] of the bouncer service.&lt;br /&gt;
&lt;br /&gt;
The user will then log into the bouncer's IRC network, rather than directly to e.g. Libera.chat. The user will then get a playback of all the history in all the channels since their last visit.&lt;br /&gt;
&lt;br /&gt;
Important: When shutting down your computer/IRC client, do not manually leave the channel, instead, simply close your IRC-client, or disconnect from the IRC bouncer's network. That will keep your nick logged in,and start saving history until next time you connect.&lt;br /&gt;
&lt;br /&gt;
== How to set it up ==&lt;br /&gt;
&lt;br /&gt;
When you're given an account on the bouncer, you will be given a username and password, let's call them &amp;quot;znc-user&amp;quot; and &amp;quot;znc-password&amp;quot;. We have configured it for you to be logged into #pioneer, with your usual nick. You can verify, and configure it by [http://191.101.80.52:1025/ logging in to it], using the new credentials. At a minimum you should change the znc-password you were given.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to connect ==&lt;br /&gt;
&lt;br /&gt;
Instead of connecting to libera.chat on port 6667, you will have to connect to the bouncer instead: 191.101.80.52, on port 1025. Instead of logging in with your nickserv nickname, you use the given one:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;znc-user&amp;gt;/network:&amp;lt;znc-password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(&amp;quot;network&amp;quot; here is the name set in the bouncer configuration, e.g. &amp;quot;Libera&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Log in in from multiple devices ===&lt;br /&gt;
&lt;br /&gt;
The pioneer znc server supports the [https://wiki.znc.in/Clientbuffer clientbuffer] (and [https://github.com/jpnurmi/znc-playback playback]) modules for using the service from multiple devices, such that the user can have separate playback buffers for each device. You can set it up (add/remove/list devices) by sending the following messages in IRC (when logged in through the bouncer, as described in previous paragraph):&lt;br /&gt;
&lt;br /&gt;
    /msg *clientbuffer AddClient &amp;lt;device-name&amp;gt;&lt;br /&gt;
    /msg *clientbuffer DelClient &amp;lt;device-name&amp;gt;&lt;br /&gt;
    /msg *clientbuffer ListClients&lt;br /&gt;
&lt;br /&gt;
And then you log in to IRC by using&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;znc-user&amp;gt;@&amp;lt;device-name&amp;gt;/network:&amp;lt;znc-password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
For this example, your regular IRC nick in #pioneer is &amp;quot;Anakin&amp;quot;. It is registered with NickServ, to belong only to you. You usually login to IRC, by using these. For example, in Emacs IRC client:&lt;br /&gt;
&lt;br /&gt;
    (erc :server &amp;quot;irc.libera.chat&amp;quot; :port 6667 :nick &amp;quot;Anakin&amp;quot; :password &amp;quot;theforce&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
For using the bouncer, you now use the znc-user and znc-password, and a different server &amp;amp; port, such that the relative changes are (again for Emacs IRC Client, for your specific IRC client make the suitable changes):&lt;br /&gt;
&lt;br /&gt;
    (erc :server &amp;quot;191.101.80.52&amp;quot; :port 1025 :nick &amp;quot;Anakin&amp;quot; :password &amp;quot;skywalker/Libera:Joshua&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Then (optional? / possibly first time only?) authenticate your usual nick name registered with nickserv, by sending the following message:&lt;br /&gt;
&lt;br /&gt;
    /msg NickServ IDENTIFY Anakin theforce&lt;br /&gt;
&lt;br /&gt;
You can also send message to the bouncer, to register your computer and phone as a two separate devices:&lt;br /&gt;
&lt;br /&gt;
    /msg *clientbuffer AddClient computer&lt;br /&gt;
    /msg *clientbuffer AddClient phone&lt;br /&gt;
    /msg *clientbuffer ListClients&lt;br /&gt;
&lt;br /&gt;
You will then always use (from your computer):&lt;br /&gt;
&lt;br /&gt;
    (erc :server &amp;quot;191.101.80.52&amp;quot; :port 1025 :nick &amp;quot;Anakin&amp;quot; :password &amp;quot;skywalker@computer/Libera:Joshua&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
to login to the bouncer using your IRC client. It will then playback the channel history since you last logged in using your &amp;quot;computer&amp;quot; device.&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Bouncer&amp;diff=4487</id>
		<title>Bouncer</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Bouncer&amp;diff=4487"/>
		<updated>2023-08-27T15:42:29Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: /* Loggin in from multiple devices */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is a Bouncer? ==&lt;br /&gt;
&lt;br /&gt;
The [https://wiki.znc.in/ZNC IRC Bouncer] will create an alternative IRC server, that will keep your nick perpetually logged in to a set of channels (like #pioneer) and IRC networks (like Libera.chat), as determined by a configuration done in the [http://191.101.80.52:1025 web-interface] of the bouncer service.&lt;br /&gt;
&lt;br /&gt;
The user will then log into the bouncer's IRC network, rather than directly to e.g. Libera.chat. The user will then get a playback of all the history in all the channels since their last visit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to set it up ==&lt;br /&gt;
&lt;br /&gt;
When you're given an account on the bouncer, you will be given a username and password, let's call them &amp;quot;znc-user&amp;quot; and &amp;quot;znc-password&amp;quot;. We have configured it for you to be logged into #pioneer, with your usual nick. You can verify, and configure it by [http://191.101.80.52:1025/ logging in to it], using the new credentials. At a minimum you should change the znc-password you were given.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to connect ==&lt;br /&gt;
&lt;br /&gt;
Instead of connecting to libera.chat on port 6667, you will have to connect to the bouncer instead: 191.101.80.52, on port 1025. Instead of logging in with your nickserv nickname, you use the given one:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;znc-user&amp;gt;/network:&amp;lt;znc-password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(&amp;quot;network&amp;quot; here is the name set in the bouncer configuration, e.g. &amp;quot;Libera&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Log in in from multiple devices ===&lt;br /&gt;
&lt;br /&gt;
The pioneer znc server supports the [https://wiki.znc.in/Clientbuffer clientbuffer] (and [https://github.com/jpnurmi/znc-playback playback]) modules for using the service from multiple devices, such that the user can have separate playback buffers for each device. You can set it up (add/remove/list devices) by sending the following messages in IRC (when logged in through the bouncer, as described in previous paragraph):&lt;br /&gt;
&lt;br /&gt;
    /msg *clientbuffer AddClient &amp;lt;device-name&amp;gt;&lt;br /&gt;
    /msg *clientbuffer DelClient &amp;lt;device-name&amp;gt;&lt;br /&gt;
    /msg *clientbuffer ListClients&lt;br /&gt;
&lt;br /&gt;
And then you log in to IRC by using&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;znc-user&amp;gt;@&amp;lt;device-name&amp;gt;/network:&amp;lt;znc-password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
For this example, your regular IRC nick in #pioneer is &amp;quot;Anakin&amp;quot;. It is registered with NickServ, to belong only to you. You usually login to IRC, by using these. For example, in Emacs IRC client:&lt;br /&gt;
&lt;br /&gt;
    (erc :server &amp;quot;irc.libera.chat&amp;quot; :port 6667 :nick &amp;quot;Anakin&amp;quot; :password &amp;quot;theforce&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
For using the bouncer, you now use the znc-user and znc-password, and a different server &amp;amp; port, such that the relative changes are (again for Emacs IRC Client, for your specific IRC client make the suitable changes):&lt;br /&gt;
&lt;br /&gt;
    (erc :server &amp;quot;191.101.80.52&amp;quot; :port 1025 :nick &amp;quot;Anakin&amp;quot; :password &amp;quot;skywalker/Libera:Joshua&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Then (optional? / possibly first time only?) authenticate your usual nick name registered with nickserv, by sending the following message:&lt;br /&gt;
&lt;br /&gt;
    /msg NickServ IDENTIFY Anakin theforce&lt;br /&gt;
&lt;br /&gt;
You can also send message to the bouncer, to register your computer and phone as a two separate devices:&lt;br /&gt;
&lt;br /&gt;
    /msg *clientbuffer AddClient computer&lt;br /&gt;
    /msg *clientbuffer AddClient phone&lt;br /&gt;
    /msg *clientbuffer ListClients&lt;br /&gt;
&lt;br /&gt;
You will then always use (from your computer):&lt;br /&gt;
&lt;br /&gt;
    (erc :server &amp;quot;191.101.80.52&amp;quot; :port 1025 :nick &amp;quot;Anakin&amp;quot; :password &amp;quot;skywalker@computer/Libera:Joshua&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
to login to the bouncer using your IRC client. It will then playback the channel history since you last logged in using your &amp;quot;computer&amp;quot; device.&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Bouncer&amp;diff=4486</id>
		<title>Bouncer</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Bouncer&amp;diff=4486"/>
		<updated>2023-08-27T15:38:44Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: /* How to connect */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is a Bouncer? ==&lt;br /&gt;
&lt;br /&gt;
The [https://wiki.znc.in/ZNC IRC Bouncer] will create an alternative IRC server, that will keep your nick perpetually logged in to a set of channels (like #pioneer) and IRC networks (like Libera.chat), as determined by a configuration done in the [http://191.101.80.52:1025 web-interface] of the bouncer service.&lt;br /&gt;
&lt;br /&gt;
The user will then log into the bouncer's IRC network, rather than directly to e.g. Libera.chat. The user will then get a playback of all the history in all the channels since their last visit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to set it up ==&lt;br /&gt;
&lt;br /&gt;
When you're given an account on the bouncer, you will be given a username and password, let's call them &amp;quot;znc-user&amp;quot; and &amp;quot;znc-password&amp;quot;. We have configured it for you to be logged into #pioneer, with your usual nick. You can verify, and configure it by [http://191.101.80.52:1025/ logging in to it], using the new credentials. At a minimum you should change the znc-password you were given.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to connect ==&lt;br /&gt;
&lt;br /&gt;
Instead of connecting to libera.chat on port 6667, you will have to connect to the bouncer instead: 191.101.80.52, on port 1025. Instead of logging in with your nickserv nickname, you use the given one:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;znc-user&amp;gt;/network:&amp;lt;znc-password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(&amp;quot;network&amp;quot; here is the name set in the bouncer configuration, e.g. &amp;quot;Libera&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Loggin in from multiple devices ===&lt;br /&gt;
&lt;br /&gt;
The pioneer znc server supports the [https://wiki.znc.in/Clientbuffer clientbuffer] (and [https://github.com/jpnurmi/znc-playback playback]) modules for using the service from multiple devices, such that the user can have separate playback buffers for each device. You can set it up (add/remove/list devices) by sending the following messages in IRC (when logged in through the bouncer, as described in previous paragraph):&lt;br /&gt;
&lt;br /&gt;
    /msg *clientbuffer AddClient &amp;lt;device-name&amp;gt;&lt;br /&gt;
    /msg *clientbuffer DelClient &amp;lt;device-name&amp;gt;&lt;br /&gt;
    /msg *clientbuffer ListClients&lt;br /&gt;
&lt;br /&gt;
And then you log in to IRC by using&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;znc-user&amp;gt;@&amp;lt;device-name&amp;gt;/network:&amp;lt;znc-password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
For this example, your regular IRC nick in #pioneer is &amp;quot;Anakin&amp;quot;. It is registered with NickServ, to belong only to you. You usually login to IRC, by using these. For example, in Emacs IRC client:&lt;br /&gt;
&lt;br /&gt;
    (erc :server &amp;quot;irc.libera.chat&amp;quot; :port 6667 :nick &amp;quot;Anakin&amp;quot; :password &amp;quot;theforce&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
For using the bouncer, you now use the znc-user and znc-password, and a different server &amp;amp; port, such that the relative changes are (again for Emacs IRC Client, for your specific IRC client make the suitable changes):&lt;br /&gt;
&lt;br /&gt;
    (erc :server &amp;quot;191.101.80.52&amp;quot; :port 1025 :nick &amp;quot;Anakin&amp;quot; :password &amp;quot;skywalker/Libera:Joshua&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Then (optional? / possibly first time only?) authenticate your usual nick name registered with nickserv, by sending the following message:&lt;br /&gt;
&lt;br /&gt;
    /msg NickServ IDENTIFY Anakin theforce&lt;br /&gt;
&lt;br /&gt;
You can also send message to the bouncer, to register your computer and phone as a two separate devices:&lt;br /&gt;
&lt;br /&gt;
    /msg *clientbuffer AddClient computer&lt;br /&gt;
    /msg *clientbuffer AddClient phone&lt;br /&gt;
    /msg *clientbuffer ListClients&lt;br /&gt;
&lt;br /&gt;
You will then always use (from your computer):&lt;br /&gt;
&lt;br /&gt;
    (erc :server &amp;quot;191.101.80.52&amp;quot; :port 1025 :nick &amp;quot;Anakin&amp;quot; :password &amp;quot;skywalker@computer/Libera:Joshua&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
to login to the bouncer using your IRC client. It will then playback the channel history since you last logged in using your &amp;quot;computer&amp;quot; device.&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Bouncer&amp;diff=4485</id>
		<title>Bouncer</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Bouncer&amp;diff=4485"/>
		<updated>2023-08-20T18:55:27Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: First version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is a Bouncer? ==&lt;br /&gt;
&lt;br /&gt;
The [https://wiki.znc.in/ZNC IRC Bouncer] will create an alternative IRC server, that will keep your nick perpetually logged in to a set of channels (like #pioneer) and IRC networks (like Libera.chat), as determined by a configuration done in the [http://191.101.80.52:1025 web-interface] of the bouncer service.&lt;br /&gt;
&lt;br /&gt;
The user will then log into the bouncer's IRC network, rather than directly to e.g. Libera.chat. The user will then get a playback of all the history in all the channels since their last visit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to set it up ==&lt;br /&gt;
&lt;br /&gt;
When you're given an account on the bouncer, you will be given a username and password, let's call them &amp;quot;znc-user&amp;quot; and &amp;quot;znc-password&amp;quot;. We have configured it for you to be logged into #pioneer, with your usual nick. You can verify, and configure it by [http://191.101.80.52:1025/ logging in to it], using the new credentials. At a minimum you should change the znc-password you were given.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to connect ==&lt;br /&gt;
&lt;br /&gt;
Instead of connecting to libera.chat on port 6667, you will have to connect to the bouncer instead: 191.101.80.52, on port 1025. Instead of logging in with your nickserv nickname, you use the given one:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;znc-user&amp;gt;/network:&amp;lt;znc-password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(&amp;quot;network&amp;quot; here is the name set in the bouncer configuration, e.g. &amp;quot;Libera&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
The pioneer znc server supports the [https://wiki.znc.in/Clientbuffer clientbuffer] (and [https://github.com/jpnurmi/znc-playback playback]) modules for using the service from multiple devices, such that the user can have separate playback buffers for each device. You can set it up (add/remove/list devices) by sending the following messages in IRC (when logged in through the bouncer, as described in previous paragraph):&lt;br /&gt;
&lt;br /&gt;
    /msg *clientbuffer AddClient &amp;lt;device-name&amp;gt;&lt;br /&gt;
    /msg *clientbuffer DelClient &amp;lt;device-name&amp;gt;&lt;br /&gt;
    /msg *clientbuffer ListClients&lt;br /&gt;
&lt;br /&gt;
And then you log in to IRC by using&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;znc-user&amp;gt;@&amp;lt;device-name&amp;gt;/network:&amp;lt;znc-password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
For this example, your regular IRC nick in #pioneer is &amp;quot;Anakin&amp;quot;. It is registered with NickServ, to belong only to you. You usually login to IRC, by using these. For example, in Emacs IRC client:&lt;br /&gt;
&lt;br /&gt;
    (erc :server &amp;quot;irc.libera.chat&amp;quot; :port 6667 :nick &amp;quot;Anakin&amp;quot; :password &amp;quot;theforce&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
For using the bouncer, you now use the znc-user and znc-password, and a different server &amp;amp; port, such that the relative changes are (again for Emacs IRC Client, for your specific IRC client make the suitable changes):&lt;br /&gt;
&lt;br /&gt;
    (erc :server &amp;quot;191.101.80.52&amp;quot; :port 1025 :nick &amp;quot;Anakin&amp;quot; :password &amp;quot;skywalker/Libera:Joshua&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Then (optional? / possibly first time only?) authenticate your usual nick name registered with nickserv, by sending the following message:&lt;br /&gt;
&lt;br /&gt;
    /msg NickServ IDENTIFY Anakin theforce&lt;br /&gt;
&lt;br /&gt;
You can also send message to the bouncer, to register your computer and phone as a two separate devices:&lt;br /&gt;
&lt;br /&gt;
    /msg *clientbuffer AddClient computer&lt;br /&gt;
    /msg *clientbuffer AddClient phone&lt;br /&gt;
    /msg *clientbuffer ListClients&lt;br /&gt;
&lt;br /&gt;
You will then always use (from your computer):&lt;br /&gt;
&lt;br /&gt;
    (erc :server &amp;quot;191.101.80.52&amp;quot; :port 1025 :nick &amp;quot;Anakin&amp;quot; :password &amp;quot;skywalker@computer/Libera:Joshua&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
to login to the bouncer using your IRC client. It will then playback the channel history since you last logged in using your &amp;quot;computer&amp;quot; device.&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=IRC&amp;diff=4484</id>
		<title>IRC</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=IRC&amp;diff=4484"/>
		<updated>2023-08-20T17:55:19Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: /* IRC Backlog / Bouncer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''IRC''' stands for '''I'''nternet '''R'''elay '''C'''hat. We [https://koshka.love/babel/irc-forever.html use it] for real-time internet text messaging related to the project.&lt;br /&gt;
&lt;br /&gt;
All the engaged people from the community and the dev team can be found there, and are usually quick to answer during European day/evening time.&lt;br /&gt;
&lt;br /&gt;
== Connect ==&lt;br /&gt;
&lt;br /&gt;
As of 2021-05-26, Pioneer has moved to the [https://libera.chat/guides/ libera.chat] IRC network, which can be connected to at irc.libera.chat, port 6667 (6697 for SSL).&lt;br /&gt;
&lt;br /&gt;
We use the following channel:&lt;br /&gt;
&lt;br /&gt;
 #pioneer&lt;br /&gt;
 -This is the only and official pioneer channel&lt;br /&gt;
&lt;br /&gt;
=== Webchat ===&lt;br /&gt;
Easiest if you're new to IRC, is to just click [https://kiwiirc.com/nextclient/irc.libera.chat/?channel=#pioneer here] (or use libera's own kiwi IRC [https://web.libera.chat/#pioneer here]) which will open a webchat instance to the #pioneer channel in your browser (type message at bottom, where text indicates).&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
In order to use IRC, you should download a client program. Popular programs are:&lt;br /&gt;
&lt;br /&gt;
*[http://www.leafdigital.com/software/leafchat/ Leafchat]&lt;br /&gt;
*[http://www.irssi.org/ irssi]&lt;br /&gt;
*[http://xchat.org/ X-Chat] (free on Linux only, almost always available in distribution repositories)&lt;br /&gt;
*[http://www.hexchat.org/ HexChat] (fork of X-Chat, free on Windows and Linux, not always available in distribution repositories)&lt;br /&gt;
&lt;br /&gt;
=== Channel Info ===&lt;br /&gt;
&lt;br /&gt;
The channel has a bot, in [https://pioneerwiki.com/wiki/Jameson cmd_jameson], to which one can leave messages to users who are currently not logged in. A number of users are in the channel 24/7 and check the backlog daily. Usually, the channel is quiet during CET night.&lt;br /&gt;
&lt;br /&gt;
=== IRC Backlog / Bouncer ===&lt;br /&gt;
It is possible to get channel backlog for when not logged in by using an [[Bouncer|IRC Bouncer]] that is logged into the channel as your user, and then you connect to this service, rather than directly to the IRC network (libera.chat). It will then replay the channel history since your last visit. There are [https://wiki.znc.in/Providers several znc providers] one can use. The pioneer development team is currently running one for anyone active in the channel discussions and/or in the game development, just ask devs in IRC if you are interested in an account. Once one has been made, follow [[Bouncer|instructions here]].&lt;br /&gt;
&lt;br /&gt;
== No Freenode? ==&lt;br /&gt;
Pioneer's IRC channel was on the freenode network at least from 2013-2021. However, in May of 2021, there was a [https://www.kline.sh/ hostile take over] of the freenode network, and we joined the original freenode staff, and most other channels, in moving to its spiritual successor: libera.chat. For more info, please see:&lt;br /&gt;
* [https://www.devever.net/~hl/freenode_abuse Freenode IRC operators now engaging in routine abuses of power]&lt;br /&gt;
* [https://github.com/freenode/web-7.0/commit/1194a3e71a427a669ccdddee22006416d46eeb43 freenode policy update]&lt;br /&gt;
* [https://mastodon.sdf.org/@kline/106299403921451814 andrew lee just seized over 700 channels on freenode]&lt;br /&gt;
* [https://www.gentoo.org/news/2021/05/26/gentoo-freenode-channels-hijacked.html Gentoo Freenode channels have been hijacked]&lt;br /&gt;
* [https://twitter.com/mjg59/status/1397389042619097095 More hijacking]&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=IRC&amp;diff=4483</id>
		<title>IRC</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=IRC&amp;diff=4483"/>
		<updated>2023-08-14T11:05:08Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: /* IRC Backlog / Bouncer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''IRC''' stands for '''I'''nternet '''R'''elay '''C'''hat. We [https://koshka.love/babel/irc-forever.html use it] for real-time internet text messaging related to the project.&lt;br /&gt;
&lt;br /&gt;
All the engaged people from the community and the dev team can be found there, and are usually quick to answer during European day/evening time.&lt;br /&gt;
&lt;br /&gt;
== Connect ==&lt;br /&gt;
&lt;br /&gt;
As of 2021-05-26, Pioneer has moved to the [https://libera.chat/guides/ libera.chat] IRC network, which can be connected to at irc.libera.chat, port 6667 (6697 for SSL).&lt;br /&gt;
&lt;br /&gt;
We use the following channel:&lt;br /&gt;
&lt;br /&gt;
 #pioneer&lt;br /&gt;
 -This is the only and official pioneer channel&lt;br /&gt;
&lt;br /&gt;
=== Webchat ===&lt;br /&gt;
Easiest if you're new to IRC, is to just click [https://kiwiirc.com/nextclient/irc.libera.chat/?channel=#pioneer here] (or use libera's own kiwi IRC [https://web.libera.chat/#pioneer here]) which will open a webchat instance to the #pioneer channel in your browser (type message at bottom, where text indicates).&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
In order to use IRC, you should download a client program. Popular programs are:&lt;br /&gt;
&lt;br /&gt;
*[http://www.leafdigital.com/software/leafchat/ Leafchat]&lt;br /&gt;
*[http://www.irssi.org/ irssi]&lt;br /&gt;
*[http://xchat.org/ X-Chat] (free on Linux only, almost always available in distribution repositories)&lt;br /&gt;
*[http://www.hexchat.org/ HexChat] (fork of X-Chat, free on Windows and Linux, not always available in distribution repositories)&lt;br /&gt;
&lt;br /&gt;
=== Channel Info ===&lt;br /&gt;
&lt;br /&gt;
The channel has a bot, in [https://pioneerwiki.com/wiki/Jameson cmd_jameson], to which one can leave messages to users who are currently not logged in. A number of users are in the channel 24/7 and check the backlog daily. Usually, the channel is quiet during CET night.&lt;br /&gt;
&lt;br /&gt;
=== IRC Backlog / Bouncer ===&lt;br /&gt;
It is possible to get channel backlog for when not logged in by using an [https://wiki.znc.in/ZNC IRC Bouncer] that is logged into the channel as your user, and then you connect to this service, rather than directly to the IRC network (libera.chat). It will then replay the channel history since your last visit. There are [https://wiki.znc.in/Providers several znc providers] one can use. The pioneer development team is currently running one for anyone active in the channel discussions and/or in the game development, just ask if you are interested in an account and help to use it.&lt;br /&gt;
The pioneer znc server supports the [https://wiki.znc.in/Clientbuffer clientbuffer] (and [https://github.com/jpnurmi/znc-playback playback]) modules for using the service from multiple devices, such that the user can have separate playback buffers for each device.&lt;br /&gt;
&lt;br /&gt;
== No Freenode? ==&lt;br /&gt;
Pioneer's IRC channel was on the freenode network at least from 2013-2021. However, in May of 2021, there was a [https://www.kline.sh/ hostile take over] of the freenode network, and we joined the original freenode staff, and most other channels, in moving to its spiritual successor: libera.chat. For more info, please see:&lt;br /&gt;
* [https://www.devever.net/~hl/freenode_abuse Freenode IRC operators now engaging in routine abuses of power]&lt;br /&gt;
* [https://github.com/freenode/web-7.0/commit/1194a3e71a427a669ccdddee22006416d46eeb43 freenode policy update]&lt;br /&gt;
* [https://mastodon.sdf.org/@kline/106299403921451814 andrew lee just seized over 700 channels on freenode]&lt;br /&gt;
* [https://www.gentoo.org/news/2021/05/26/gentoo-freenode-channels-hijacked.html Gentoo Freenode channels have been hijacked]&lt;br /&gt;
* [https://twitter.com/mjg59/status/1397389042619097095 More hijacking]&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=IRC&amp;diff=4482</id>
		<title>IRC</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=IRC&amp;diff=4482"/>
		<updated>2023-08-14T10:40:54Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''IRC''' stands for '''I'''nternet '''R'''elay '''C'''hat. We [https://koshka.love/babel/irc-forever.html use it] for real-time internet text messaging related to the project.&lt;br /&gt;
&lt;br /&gt;
All the engaged people from the community and the dev team can be found there, and are usually quick to answer during European day/evening time.&lt;br /&gt;
&lt;br /&gt;
== Connect ==&lt;br /&gt;
&lt;br /&gt;
As of 2021-05-26, Pioneer has moved to the [https://libera.chat/guides/ libera.chat] IRC network, which can be connected to at irc.libera.chat, port 6667 (6697 for SSL).&lt;br /&gt;
&lt;br /&gt;
We use the following channel:&lt;br /&gt;
&lt;br /&gt;
 #pioneer&lt;br /&gt;
 -This is the only and official pioneer channel&lt;br /&gt;
&lt;br /&gt;
=== Webchat ===&lt;br /&gt;
Easiest if you're new to IRC, is to just click [https://kiwiirc.com/nextclient/irc.libera.chat/?channel=#pioneer here] (or use libera's own kiwi IRC [https://web.libera.chat/#pioneer here]) which will open a webchat instance to the #pioneer channel in your browser (type message at bottom, where text indicates).&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
In order to use IRC, you should download a client program. Popular programs are:&lt;br /&gt;
&lt;br /&gt;
*[http://www.leafdigital.com/software/leafchat/ Leafchat]&lt;br /&gt;
*[http://www.irssi.org/ irssi]&lt;br /&gt;
*[http://xchat.org/ X-Chat] (free on Linux only, almost always available in distribution repositories)&lt;br /&gt;
*[http://www.hexchat.org/ HexChat] (fork of X-Chat, free on Windows and Linux, not always available in distribution repositories)&lt;br /&gt;
&lt;br /&gt;
=== Channel Info ===&lt;br /&gt;
&lt;br /&gt;
The channel has a bot, in [https://pioneerwiki.com/wiki/Jameson cmd_jameson], to which one can leave messages to users who are currently not logged in. A number of users are in the channel 24/7 and check the backlog daily. Usually, the channel is quiet during CET night.&lt;br /&gt;
&lt;br /&gt;
=== IRC Backlog / Bouncer ===&lt;br /&gt;
It is possible to get channel backlog for when not logged in by using a [https://wiki.znc.in/ZNC IRC Bouncer] that is logged into the channel as your user, and then connecting to this service, rather than directly to the IRC network (libera.chat). It will then replay the channel history since your last visit. There are [https://wiki.znc.in/Providers several znc providers] one can use, the pioneer development team is currently running one for anyone active in the channel discussions and/or in the game development, just ask if you are interested in an account and help to use it.&lt;br /&gt;
The pioneer znc server supports [https://wiki.znc.in/Clientbuffer Clientbuffer] (and [https://github.com/jpnurmi/znc-playback playback]) for using from multiple devices, such that playback buffers are independent of device.&lt;br /&gt;
&lt;br /&gt;
== No Freenode? ==&lt;br /&gt;
Pioneer's IRC channel was on the freenode network at least from 2013-2021. However, in May of 2021, there was a [https://www.kline.sh/ hostile take over] of the freenode network, and we joined the original freenode staff, and most other channels, in moving to its spiritual successor: libera.chat. For more info, please see:&lt;br /&gt;
* [https://www.devever.net/~hl/freenode_abuse Freenode IRC operators now engaging in routine abuses of power]&lt;br /&gt;
* [https://github.com/freenode/web-7.0/commit/1194a3e71a427a669ccdddee22006416d46eeb43 freenode policy update]&lt;br /&gt;
* [https://mastodon.sdf.org/@kline/106299403921451814 andrew lee just seized over 700 channels on freenode]&lt;br /&gt;
* [https://www.gentoo.org/news/2021/05/26/gentoo-freenode-channels-hijacked.html Gentoo Freenode channels have been hijacked]&lt;br /&gt;
* [https://twitter.com/mjg59/status/1397389042619097095 More hijacking]&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=IRC&amp;diff=4481</id>
		<title>IRC</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=IRC&amp;diff=4481"/>
		<updated>2023-07-30T08:48:41Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''IRC''' stands for '''I'''nternet '''R'''elay '''C'''hat. We [https://koshka.love/babel/irc-forever.html use it] for real-time internet text messaging related to the project.&lt;br /&gt;
&lt;br /&gt;
All the engaged people from the community and the dev team can be found there, and are usually quick to answer during European day/evening time.&lt;br /&gt;
&lt;br /&gt;
== Connect ==&lt;br /&gt;
&lt;br /&gt;
As of 2021-05-26, Pioneer has moved to the [https://libera.chat/guides/ libera.chat] IRC network, which can be connected to at irc.libera.chat, port 6667 (6697 for SSL).&lt;br /&gt;
&lt;br /&gt;
We use the following channel:&lt;br /&gt;
&lt;br /&gt;
 #pioneer&lt;br /&gt;
 -This is the only and official pioneer channel&lt;br /&gt;
&lt;br /&gt;
=== Webchat ===&lt;br /&gt;
Easiest if you're new to IRC, is to just click [https://kiwiirc.com/nextclient/irc.libera.chat/?channel=#pioneer here] (or use libera's own kiwi IRC [https://web.libera.chat/#pioneer here]) which will open a webchat instance to the #pioneer channel in your browser (type message at bottom, where text indicates).&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
In order to use IRC, you should download a client program. Popular programs are:&lt;br /&gt;
&lt;br /&gt;
*[http://www.leafdigital.com/software/leafchat/ Leafchat]&lt;br /&gt;
*[http://www.irssi.org/ irssi]&lt;br /&gt;
*[http://xchat.org/ X-Chat] (free on Linux only, almost always available in distribution repositories)&lt;br /&gt;
*[http://www.hexchat.org/ HexChat] (fork of X-Chat, free on Windows and Linux, not always available in distribution repositories)&lt;br /&gt;
&lt;br /&gt;
=== Channel Info ===&lt;br /&gt;
&lt;br /&gt;
The channel has a bot, in [https://pioneerwiki.com/wiki/Jameson cmd_jameson], to which one can leave messages to users who are currently not logged in. A number of users are in the channel 24/7 and check the backlog daily. Usually, the channel is quiet during CET night.&lt;br /&gt;
&lt;br /&gt;
== No Freenode? ==&lt;br /&gt;
Pioneer's IRC channel was on the freenode network at least from 2013-2021. However, in May of 2021, there was a [https://www.kline.sh/ hostile take over] of the freenode network, and we joined the original freenode staff, and most other channels, in moving to its spiritual successor: libera.chat. For more info, please see:&lt;br /&gt;
* [https://www.devever.net/~hl/freenode_abuse Freenode IRC operators now engaging in routine abuses of power]&lt;br /&gt;
* [https://github.com/freenode/web-7.0/commit/1194a3e71a427a669ccdddee22006416d46eeb43 freenode policy update]&lt;br /&gt;
* [https://mastodon.sdf.org/@kline/106299403921451814 andrew lee just seized over 700 channels on freenode]&lt;br /&gt;
* [https://www.gentoo.org/news/2021/05/26/gentoo-freenode-channels-hijacked.html Gentoo Freenode channels have been hijacked]&lt;br /&gt;
* [https://twitter.com/mjg59/status/1397389042619097095 More hijacking]&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=FAQ&amp;diff=4467</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=FAQ&amp;diff=4467"/>
		<updated>2023-05-08T08:52:43Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: /* My OpenGL Version is below 3.1, &amp;quot;Pioneer cannot run on your graphics card&amp;quot; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Frequently Asked Questions =&lt;br /&gt;
&lt;br /&gt;
== About the Game ==&lt;br /&gt;
&lt;br /&gt;
=== What is Pioneer? ===&lt;br /&gt;
&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;
&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 follows this same path.&lt;br /&gt;
&lt;br /&gt;
=== Can I play multiplayer online? ===&lt;br /&gt;
&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. See for instance [[Network_features|Network features]], and [[ServerAgent|ServerAgent]] for more, or our dev forum [https://forum.pioneerspacesim.net/viewtopic.php?f=3&amp;amp;t=216 here]. Pioneer will never have multiple players in different ships, as this is incompatible with time acceleration feature. For comparison: the Elite Dangerous dev-team chose to prioritize multiplayer over Newtonian mechanics, and make it more like the original Elite, we choose to stay true to the core concepts of Frontier Elite II, which is Newtonian mechanics, with time acceleration.&lt;br /&gt;
&lt;br /&gt;
=== Can I colonize planets, build space stations or conquer the universe? ===&lt;br /&gt;
&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;
&lt;br /&gt;
No, you cannot exit your ship. The ship is always your avatar. The development team does have [https://forum.pioneerspacesim.net/viewtopic.php?f=3&amp;amp;t=454 aspirations] to push in this direction, for future versions.&lt;br /&gt;
&lt;br /&gt;
=== Is the universe pre-defined or randomly generated? ===&lt;br /&gt;
&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;
&lt;br /&gt;
Yes. You can hire crew. But they don't do very much at the moment.&lt;br /&gt;
&lt;br /&gt;
=== Are savegames compatible between releases? ===&lt;br /&gt;
&lt;br /&gt;
The development of the game can happen in sudden bursts, some of which change the game universe, or save/load routine, such that old saves are blocked from loading, lest the game might crash. The player can start a new game, and &amp;quot;give&amp;quot; themselves back money, kills, reputation, ship, as it was in the old save, by using the [[Lua_Console|lua console]]. You probably want to keep a copy of your old Pioneer, to read off your player statistics, write them down, then download and open the latest Pioneer version, and give yourself those stats. Note: it's only cheating if you give yourself back more than you had, remember: God is watching over your shoulder!&lt;br /&gt;
&lt;br /&gt;
=== Are savegames compatible between Mods? ===&lt;br /&gt;
&lt;br /&gt;
Again as with savegames between different versions of pioneer, compatibility between mods can not be guaranteed. It all depends on what mods you have installed.&lt;br /&gt;
&lt;br /&gt;
=== Where is star system X from Frontier? Can I buy ship Y? ===&lt;br /&gt;
&lt;br /&gt;
Although Pioneer started out as a clone of Frontier, it no longer is, thus references to the Frontier universe have been removed, and we aim at making Pioneer far better than Frontier. Thus, you will have to figure out new trade routes! But don't worry, Newtonian physics will remain, as well as single player.&lt;br /&gt;
&lt;br /&gt;
=== Can I build and control a fleet, or a factory, or run/own a station? ===&lt;br /&gt;
&lt;br /&gt;
No, this is not on the agenda, and none of the developers are motivated to push for this, but who knows, perhaps in the future, some skilled developer, who knows how to implement this in a way that makes game play interesting, joins the dev-team. However, we are currently planning to have mining machines (like in Frontier Elite II), and ship system management (heat, energy, repair components, etc.) on the agenda.&lt;br /&gt;
&lt;br /&gt;
== Gameplay ==&lt;br /&gt;
&lt;br /&gt;
=== How do I take screenshots? ===&lt;br /&gt;
&lt;br /&gt;
Ctrl+Printscreen saves .png files in the same directory where the game .ini and savegames are. You can cycle through full HUD/HUD without labels and cursor/No HUD and cockpit using TAB as described in [http://pioneerwiki.com/wiki/Keyboard_and_mouse_controls#In_flight [1]].&lt;br /&gt;
&lt;br /&gt;
=== How do I record a video? ===&lt;br /&gt;
To record video directly from Pioneer you will need to add the line RecordVideo=1 somewhere within your config.ini file. Then once ingame you can press Ctrl+ScrLk to start or stop recording.&lt;br /&gt;
&lt;br /&gt;
=== How do I find star X in the star map ===&lt;br /&gt;
&lt;br /&gt;
First it is important to note that just like in real life, names are not unique. The star map allows the player to search for either name or coordinates of a system. The search is done in the local region of the currently selected system.&lt;br /&gt;
&lt;br /&gt;
Thus a standard way of finding a system is to type in the name in the search field in the star map (generally refereed to as &amp;quot;sector view&amp;quot;). If you know the system is within a few ly from your position, then have your current location selected when you do the search, since it only does a &amp;quot;local&amp;quot; search in space. If the search fails, go to the sector where the star is supposed to be, either by typing the coordinates into the search field, or by using arrows, mark a nearby star in that system, and do another search. You can scroll the star map super fast by holding in the Shift key.&lt;br /&gt;
&lt;br /&gt;
=== I have a Taxi mission to system X, but which starport? ===&lt;br /&gt;
&lt;br /&gt;
For Taxi missions any starport will do, as long as you dock before the deadline.&lt;br /&gt;
&lt;br /&gt;
=== Starsystem names are not unique ===&lt;br /&gt;
&lt;br /&gt;
This is not a bug, space is big, and just here on Earth it is quite common with cities and villages sharing the same name, sometimes quite close.&lt;br /&gt;
&lt;br /&gt;
=== I picked up a mission to a starport in a system, but when I search for the system, it seems that it doesn't have the destination starport, or even uninhabited. ===&lt;br /&gt;
&lt;br /&gt;
As mentioned above, there could be multiple systems with the same name. Each mission states the coordinates (Sirius (1,0,-1) for example) of the destination system, and you can enter them into the search field on the sector map, to find the correct system.&lt;br /&gt;
&lt;br /&gt;
=== I end up &amp;quot;a big number&amp;quot; AU away from the star when I hyper jump to a system ===&lt;br /&gt;
&lt;br /&gt;
This happens in binary star systems. You can select the star you want to jump to from the [[Manual#System_info|System View]].&lt;br /&gt;
&lt;br /&gt;
== Technical FAQ ==&lt;br /&gt;
&lt;br /&gt;
=== What is the system requirement for runing the game? ===&lt;br /&gt;
&lt;br /&gt;
Current &amp;quot;stable&amp;quot; (if indeed we have one) [https://pioneerspacesim.net/page/download/ release] is 2021-02-03, and is built on Ubuntu 20.04 Linux machine and a Windows machine, and requires OpenGL 3.2 compatible hardware.&lt;br /&gt;
We also offer a [https://flathub.org/apps/details/net.pioneerspacesim.Pioneer flatpak] script. If you want to compile the game, then please install requirements listed in [https://github.com/pioneerspacesim/pioneer/blob/master/COMPILING.txt COMPILING.txt]&lt;br /&gt;
&lt;br /&gt;
=== Installing the game ===&lt;br /&gt;
&lt;br /&gt;
The releases are made when developers feel it's been &amp;quot;a while&amp;quot;, relative to the number of new additions that have been added that they want players to enjoy / playtest. Releases for Windows and GNU/Linux are now (2021) found on the [https://github.com/pioneerspacesim/pioneer/releases github releases page], and Linux versions are currently built on a [https://github.com/pioneerspacesim/pioneer/blob/master/.github/workflows/build-ci.yml Ubuntu 20.04] (virtual) machine, thus that system should not have any compatibility issues.&lt;br /&gt;
&lt;br /&gt;
==== Build from source ====&lt;br /&gt;
&lt;br /&gt;
The best way to ensure your pioneer is compatible with you Linux system, and of latest, &amp;quot;bleeding edge&amp;quot;, version is to install from source. This is described in [https://github.com/pioneerspacesim/pioneer/blob/master/COMPILING.txt COMPILING.txt]. Playing this way is also the best way you can help the developers, i.e. find and report the latest bugs you encounter.&lt;br /&gt;
&lt;br /&gt;
==== Installing using flatpak ==== &lt;br /&gt;
If you're having trouble getting pioneer to run on your Linux distribution, and you do not want to build from source, then we recommend [https://flathub.org/apps/details/net.pioneerspacesim.Pioneer flatpak] that resolves dependencies for you. Follow [https://flatpak.org/setup/ this] on how to use it, if need be. E.g. on Linux Mint these images are already [https://flatpak.org/setup/Linux%20Mint included] by default in their app store. On other distributions it is at most needed to install flatpak and then issue, from a terminal:&lt;br /&gt;
&lt;br /&gt;
  flatpak install net.pioneerspacesim.Pioneer&lt;br /&gt;
&lt;br /&gt;
==== Error loading shared libraries (e.g.libassimp.so.&amp;lt;x&amp;gt;) ====&lt;br /&gt;
&lt;br /&gt;
The linux version of Pioneer is build on a Ubuntu 20 machine. Currenlty (2021-05), this can cause some debian machines, that have an older verison of libassimp, to throw an error, e.g.:&lt;br /&gt;
&lt;br /&gt;
    error while loading shared libraries: libassimp.so.5:&lt;br /&gt;
    cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
This is fixed either by building pioneer from source, against the shared libraries that are on your particular machine (then you get an even more updated &amp;quot;bleeding edge&amp;quot; build of pioneer!), or install the correct version of the package that is missing: https://packages.debian.org/unstable/libassimp5 (or try to find an older release)&lt;br /&gt;
&lt;br /&gt;
==== Where is the Mac version? ====&lt;br /&gt;
&lt;br /&gt;
Pioneer's development team is mainly on Linux and Windows, and does currently not have the ability to build and maintain a Mac version. To build a Mac release we actually need access to a Mac machine, which, unfortunately, none of the developers currently have. If you have a Mac which can compile and upload pioneer for us on a regular basis, then please contact us (IRC).&lt;br /&gt;
&lt;br /&gt;
Update: OSX builds have been discontinued due to lack of maintainer and Apple's deprecation of OpenGL. We do not intend to offer them in the near future - we will need to migrate the rendering path to Vulkan and have enough of a user base to warrant spending time on OSX compatibility.&lt;br /&gt;
&lt;br /&gt;
==== Where do I find nightly builds of Pioneer ====&lt;br /&gt;
&lt;br /&gt;
They're available on github [https://github.com/pioneerspacesim/pioneer/actions?query=workflow%3A%22Build+Pioneer%22+branch%3Amaster actions page]. Note: thuis currently requires [https://github.com/actions/upload-artifact/issues/51 login to github] to download. A new build is made each time a pull request is merged with new code, and also each proposed pull request is built, which is a great way to test features prior to them being merged into the master branch.&lt;br /&gt;
&lt;br /&gt;
==== Where do I find older versions of Pioneer ====&lt;br /&gt;
&lt;br /&gt;
You can find older versions starting from December 2014 (2014-12-05) on our [http://sourceforge.net/projects/pioneerspacesim/files sourceforge] page. 2014-11-18 was the last version supporting OpenGL 2, between 2014-11-19 to 2014-12-07 Pioneer required OpenGL 3.2. From 2014-12-08 only OpenGL 3.1 is required. Over at [http://www.moddb.com/games/pioneer/downloads moddb] they have windows version going further back in time.&lt;br /&gt;
&lt;br /&gt;
==== How do I play on old computer ====&lt;br /&gt;
&lt;br /&gt;
Your best bet is to use an older version, or if you have another computer you can use virtualGL to let pioneer run on a remote (modern) machine and forward it to an older machine, as described on the [https://spacesimcentral.com/community/pioneer/a-request-for-instrumental-pioneer/ forum], this command works best (but combat/action is too laggy, so it is only a viable solution for playing peaceful missions):&lt;br /&gt;
&lt;br /&gt;
  vglconnect user@server_executing_pioneer_ip -CY -p SSH_port 'cd /path_of_pioneer_compilation_folderme/ &amp;amp;&amp;amp; ./pioneer'&lt;br /&gt;
&lt;br /&gt;
=== How/where do I report my bug/crash ===&lt;br /&gt;
&lt;br /&gt;
Bug reporting is the most important part where you as a player can help the community. When you encounter something that seems strange or odd in the game, please report it, preferably to our [https://github.com/pioneerspacesim/pioneer/issues issue tracker], but you can also stop by the [[IRC|IRC channel]]. When you report it, always mention pioneer verision (shown in lower right hand corner in the starting screen [https://user-images.githubusercontent.com/18342621/118388006-6ee03080-b62a-11eb-8d48-bf66f0820d5f.png png])&lt;br /&gt;
&lt;br /&gt;
When having problems with graphics, or pioneer not starting/crashing, please attach the files '''output.txt''' and '''opengl.txt''' from the pioneer [http://pioneerwiki.com/wiki/FAQ#Where_is_the_configuration_file.2C_saved_games.2C_screenshots.3F config folder] in your home folder / My Documents folder. If you didn't get the '''output.txt''' file, then make sure '''RedirectStdio=1''' in '''config.ini'''.&lt;br /&gt;
&lt;br /&gt;
It is important to include as much of the following information as possible in each issue report, much of this is available to use from the '''output.txt''' and '''opengl.txt''' but if you cannot attach them then please tell us:&lt;br /&gt;
&lt;br /&gt;
*The version of pioneer you are trying to run (''build date or ingame version number'') &lt;br /&gt;
*What operating system you are running, Windows XP/Vista/7/8/10, Linux (''what distribution''), OSX. &lt;br /&gt;
*Your computers system specifications - CPU / RAM / Graphics card. &lt;br /&gt;
*Whether you have downloaded it from our site, or if you are building it from the source code.&lt;br /&gt;
&lt;br /&gt;
=== Debug backtrace ===&lt;br /&gt;
When the game crashes, one of most valuable pieces of information you can provide the development team, is a backtrace. To get a backtrace, the game must have been compiled in debug mode, and then started through a debugger. If you compile the game yourself, from source, it will by default build a debug mode.&lt;br /&gt;
&lt;br /&gt;
==== Windows Visual Studio ====&lt;br /&gt;
&lt;br /&gt;
* Compile the game in debug mode (should be the default setting). &lt;br /&gt;
* After building it, press F5 or go to Debug-&amp;gt;Start Debugging. Note: it will run slowly, starting a new game or loading a new one in particular. That's normal.&lt;br /&gt;
* Instead of a full out crash, you'll get a freeze and it should automatically switch back to Visual Studio. If it freezes and doesn't switch back, do that manually.&lt;br /&gt;
* At that point, Visual Studio should have opened a couple new panes/sub windows at the bottom. One of these is 'Call Stack.' Right click in it, select 'Select All.' Then right click in there again and select 'Copy with source paths.'&lt;br /&gt;
* Then paste that information into the bug-report (preferably as a [https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet code formatted block])&lt;br /&gt;
* After that you can Debug-&amp;gt;Stop to shut down Pioneer again.&lt;br /&gt;
&lt;br /&gt;
==== Linux gdb ====&lt;br /&gt;
* Make sure gdb (The GNU Debugger) is installed on you system (available in package managers of all Linux distributions).&lt;br /&gt;
* Then start pioneer by prefixing the command with gdb followed by the normal command to start pioneer. Eg. if you normally do:&lt;br /&gt;
&lt;br /&gt;
  cd pioneer/&lt;br /&gt;
  ./build/pioneer&lt;br /&gt;
&lt;br /&gt;
then to run in debug mode, you need to run it through gdb:&lt;br /&gt;
&lt;br /&gt;
  cd pioneer/&lt;br /&gt;
  gdb ./build/pioneer&lt;br /&gt;
&lt;br /&gt;
then from inside gdb, type &amp;quot;run&amp;quot;, which starts pioneer. Play until you get the crash, which drops you out to gdb again. Type 'bt' or 'backtrace' in the gdb command line, and save the output to you bug-report.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Where is the configuration file, saved games, screenshots? ===&lt;br /&gt;
&lt;br /&gt;
*Windows: My Documents\Pioneer &lt;br /&gt;
*OS X: /Users/your_username/Library/Application Support/Pioneer &lt;br /&gt;
*Linux: /home/your_username/.pioneer &lt;br /&gt;
&lt;br /&gt;
=== New pioneer version doesn't start ===&lt;br /&gt;
This could be because new configuration is incompatible with the local, try remmoving your pioneer configuration folder, such that the game will auto-generate new configuration file anew. &lt;br /&gt;
&lt;br /&gt;
=== I'm getting graphical issues ===&lt;br /&gt;
&lt;br /&gt;
Such as wrong textures, ships missing from the view, text display glitches. '''Updating the display drivers usually solve these problems.'''&lt;br /&gt;
&lt;br /&gt;
These usually occur on older graphics adapters, or because of outdated GPU drivers. Not too old NVidia and ATI cards are usually enough to play the game, but integrated GPUs are usually not enough.&lt;br /&gt;
&lt;br /&gt;
=== I'm getting graphical issues, such as snow-like sky and transparent terrain ===&lt;br /&gt;
&lt;br /&gt;
This is probably caused by the eclipse shader which isn't supported by some open source graphic drivers. You could install the proprietary drivers, if available, or disable the eclipse effect by adding DisableEclipse=1 to your pioneer configuration file (config.ini).&lt;br /&gt;
&lt;br /&gt;
=== My OpenGL Version is below 3.2, &amp;quot;Pioneer cannot run on your graphics card&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
UPDATE: Pioneer dropped 2.1 support in September, 2018. You need to checkout and compile a version prior to this, and do:&lt;br /&gt;
&lt;br /&gt;
Open your pioneer configuration file, and set: &amp;quot;RendererName=Opengl 2.1&amp;quot;. This should allow pioneer to run, provided your hardware supports OpenGL 2.1, which it should if you were able to run Pioneer up until 2014-11-18 when support was dropped. Note, support for multiple renderers was added 2017-03-03, i.e. both OpenGL 2.1 and 3.1; however, you need to edit your configuration file to select the proper one, as no auto-detection is done. Actually, if your hardware isn't extraordinarily old, OpenGL 3.2 should be supported if you update your drivers.&lt;br /&gt;
&lt;br /&gt;
You can also find older versions (pre 20141119) on [http://www.moddb.com/games/pioneer/downloads moddb].&lt;br /&gt;
&lt;br /&gt;
=== I see blank untextured Gas Giants and I'm using an ATI graphic card under GNU/Linux with open source drivers (Mesa R600) ===&lt;br /&gt;
&lt;br /&gt;
With chipsets using the R600 gallium drivers the shader fails to compile. There is a workaround that uses less noise octaves. This produces less detailed texture maps for the gas/ice giants but they still look good and at least the program runs.&lt;br /&gt;
&lt;br /&gt;
Try setting &amp;lt;code&amp;gt;AMD_MESA_HACKS=1&amp;lt;/code&amp;gt; in ~/.pioneer/config.ini or disable GPU jobs entirely by setting &amp;lt;code&amp;gt;EnableGpujobs=0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== I'm getting text rendering artefacts ===&lt;br /&gt;
&lt;br /&gt;
Some system monitoring HUD utilities, like MSI Afterburner, and Steam overlay&amp;amp;nbsp;can cause distorted text rendering. Try switching them off.&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== The game freezes at the intro screen ===&lt;br /&gt;
&lt;br /&gt;
If you cannot start the game at all, edit the configuration file and change value DisableShaders to 1.&lt;br /&gt;
&lt;br /&gt;
=== The game crashes on start with an error message about imgui_draw.cpp ===&lt;br /&gt;
&lt;br /&gt;
Check if any parent folder of Pioneer has any accented letters (e.g éáűúóü etc.). If so, copy the game to somewhere, where there's none of these in the folder tree.&lt;br /&gt;
&lt;br /&gt;
=== The game crashes after the loading screen. I'm using ATI free drivers on GNU/Linux. ===&lt;br /&gt;
&lt;br /&gt;
If you are getting a GL_INVALID_ENUM in console, could be because some ships uses textures in a format that, because of patents, is not included in the main mesa package. Search for libtxc-dxtn or libtxc_dxtn in your distribution and install it.&lt;br /&gt;
&lt;br /&gt;
=== The game hangs when I turn on the ''Enable Cockpit (EXPERIMENTAL)'' option ===&lt;br /&gt;
&lt;br /&gt;
It's because it's an experimental feature right now, infrastructure mostly. You need a cockpit model for to be able to use it.&lt;br /&gt;
&lt;br /&gt;
You can find one heavily WIP one posted on the Community Forums. Note that it's a highly experimental feature right no, so please treat it accordingly.&lt;br /&gt;
&lt;br /&gt;
=== My joystick is &amp;quot;drifting&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
It's recommended that you calibrate your joystick using the OS facilities (Joystick Settings on Windows, jstest-gtk on linux) as this fixes 99% of all issues with incorrectly configured joysticks. However, if you want to adjust specific parameters for each joystick axis, support for customizable deadzone and sensitivity is available through the configuration file. Open config.ini and adjust the deadzone (DZ) and sensitivity exponent curve (CV) values of the corresponding axis to your liking.&lt;br /&gt;
&lt;br /&gt;
 ; example joystick configuration&lt;br /&gt;
 [Joystick.03000000a30600006404000000010000]&lt;br /&gt;
 Axis0=DZ0.0 CV1.0&lt;br /&gt;
 Axis1=DZ0.0 CV1.0&lt;br /&gt;
 Axis2=DZ0.0 CV1.0&lt;br /&gt;
 Axis3=DZ0.0 CV1.0&lt;br /&gt;
 Name=Saitek Cyborg USB Stick&lt;br /&gt;
&lt;br /&gt;
=== I'm getting poor performance ===&lt;br /&gt;
&lt;br /&gt;
The heaviest part of the game is planetary terrain generation. Turn down the &amp;quot;Detail distance&amp;quot; and &amp;quot;Fractal detail&amp;quot; settings, they have the most impact for performance. Reducing screen resolution is also recommended, this can be done in the [[Settings_Menu|Settings Menu]], or manually to a custom values by editing your personal configuration file, on Linux: &amp;lt;code&amp;gt;~/.pioneer/config.ini&amp;lt;/code&amp;gt;. On Windows: &amp;lt;code&amp;gt;Documents/pioneer/config.ini&amp;lt;/code&amp;gt; Look for &amp;lt;code&amp;gt;ScrHeight&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ScrWidth&amp;lt;/code&amp;gt; entries. Also consider reducing number of buildings in cities.&lt;br /&gt;
&lt;br /&gt;
=== I've enabled anti-aliasing in the config file, but it does not work ===&lt;br /&gt;
&lt;br /&gt;
Make sure the AA settings are not overridden by your graphics card settings, on NVidia AA should be set to &amp;quot;application controlled&amp;quot; mode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Full screen mode is incorrectly scaled ===&lt;br /&gt;
&lt;br /&gt;
If you are on Windows, try:&lt;br /&gt;
&amp;lt;pre&amp;gt;Sounds like windows 7 desktop-scaling issues.&lt;br /&gt;
Try adding some compatability modes to the Pioneer.exe.&lt;br /&gt;
Right click it and Choose properties -&amp;gt; Compatability -&amp;gt; Tick&lt;br /&gt;
Disable desktop scaling, and Disable desktop composition.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
=== What's the history of Pioneer ===&lt;br /&gt;
&lt;br /&gt;
The project started in 2008 by Tom Morton, and was [https://web.archive.org/web/20150326115725/http://spacesimcentral.com/ssc/topic/742-pioneer-new-gpl-frontier-elite-2-style-game/ announced in 2010] on the Space Sim Central forum (for space games), and on [https://forums.frontier.co.uk/threads/the-pioneer-thread.1596/ frontier forum]. For more history, see [http://www.rockpapershotgun.com/2011/12/06/back-to-frontier-pioneer/ Rock Paper Shotgun article], and [[Media_Coverage]]&lt;br /&gt;
&lt;br /&gt;
=== How much development is being made? ===&lt;br /&gt;
&lt;br /&gt;
Development is sporadic, but no month goes by without some change to the source, fixing bugs, cleaning up code, introducing new content and/or features; see [https://github.com/pioneerspacesim/pioneer/blob/master/Changelog.txt Changelog.txt]. All contributors work on pioneer for free when they have time and motivation.&lt;br /&gt;
&lt;br /&gt;
=== What's the deal with the inconsistent UI interface? ===&lt;br /&gt;
Basically, Pioneer has during the 2013-2020s had up to three different, simulteneous, UI systems, for a background and screen shots, please refer to:&lt;br /&gt;
[[GUI_introduction#Background_history]]&lt;br /&gt;
&lt;br /&gt;
=== Do you accept contributions? ===&lt;br /&gt;
&lt;br /&gt;
Hell yes! Pioneer is not any one persons personal project. It is the sum of the contributions made by the people who play and care about the continued development of the game. See: [[How_you_can_contribute|How to contribute]].&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Interacting_with_the_game:_Event-based_programming&amp;diff=4465</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=4465"/>
		<updated>2023-04-06T13:19:48Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: /* Events */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Events==&lt;br /&gt;
&lt;br /&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 [https://codedoc.pioneerspacesim.net/ 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;
Here is an adaptation of the 'Hello World' message above to be event driven. It's now triggered on game start and will still turn up on the command line, but now much later in the start sequence, pretty much when the game starts and you find yourself docked at a starport.&lt;br /&gt;
 local Event = require 'Event'&lt;br /&gt;
 &lt;br /&gt;
 local welcome = function ()&lt;br /&gt;
     print(&amp;quot;Hello, World!&amp;quot;)&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 Event.Register(&amp;quot;onGameStart&amp;quot;, welcome)&lt;br /&gt;
&lt;br /&gt;
We move on. The same function again but now instead the message is presented on the player's ship console and is now welcoming them to Pioneer. We need to add the ''' 'Comms' ''' module to the script and the function name has changed to ''' 'onGameStart' ''', same as the event, which is common practice in Pioneer.&lt;br /&gt;
 local Comms = require 'Comms'&lt;br /&gt;
 local Event = require 'Event'&lt;br /&gt;
 &lt;br /&gt;
 local onGameStart = function ()&lt;br /&gt;
     Comms.Message ('Welcome to Pioneer!')&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 Event.Register(&amp;quot;onGameStart&amp;quot;, onGameStart)&lt;br /&gt;
The latest code may not work as intended. The reason is that ''' 'onGameStart' ''' is not when the game starts but when it is being launched after pressing the button on the main menu to start on Mars, or whatever location you prefer. Instead we go for the next best event, ''' 'onShipDocked' '''. This will make the message trigger every time we dock at a space station, on the ground or in orbit. ''' 'onShipDocked' ''' will not trigger on launching a saved game but it will trigger when we start a new game, docked at a starport. And now the script works just fine...&lt;br /&gt;
 local Comms = require 'Comms'&lt;br /&gt;
 local Event = require 'Event'&lt;br /&gt;
 &lt;br /&gt;
 local onShipDocked = function ()&lt;br /&gt;
     Comms.Message ('Welcome to Pioneer!')&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 Event.Register(&amp;quot;onShipDocked&amp;quot;, onShipDocked)&lt;br /&gt;
If you look at the comms log after docking/starting a new game, you will see that the greeting has been posted more than once. This is because the same function is triggered for all ships in the vicinity, not only the players. The Pioneer universe is populated by ships and characters and they follow pretty much the same rules as the player. To make the code work we need to test if the ship is the player first. Modify the ''' 'onShipDocked' ''' function in the previous example like this:&lt;br /&gt;
 local onShipDocked = function (ship)&lt;br /&gt;
     if ship:IsPlayer() then&lt;br /&gt;
         Comms.Message ('Welcome to Pioneer!')&lt;br /&gt;
     end&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
An alternative solution to the last code snippet would be to test for if the ship is '''not''' the player:&lt;br /&gt;
&lt;br /&gt;
 local onShipDocked = function (ship)&lt;br /&gt;
     if not ship:IsPlayer() then return end&lt;br /&gt;
     Comms.Message ('Welcome to Pioneer!')&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
==Event arguments==&lt;br /&gt;
&lt;br /&gt;
As mentioned before '''[https://pioneerspacesim.net/codedoc/files2/Event-lua.html#Event.onShipDocked onShipDocked]''' passes two arguments to the function. A reference to the ship and a reference to the spacestation.&lt;br /&gt;
 local onShipDocked = function (ship, station)&lt;br /&gt;
Through these arguments we also get access to some of the ''' 'ship' ''' and ''' 'station' ''' methods without having to include any modules.&lt;br /&gt;
''' 'ship:IsPlayer()' ''' is for free. Unlimited power is now at your fingertips! ''' 'Comms.Message' ''' takes a second argument for the sender of the message. ''' 'station.label' ''' gives us the name of the space station.&lt;br /&gt;
&lt;br /&gt;
 Comms.Message (&amp;quot;Congratulations! Your ship has been upgraded for free!&amp;quot;, station.label)&lt;br /&gt;
 ship:SetShipType('xylophis')&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Interacting_with_the_player:_BBS_forms&amp;diff=4464</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=4464"/>
		<updated>2023-04-06T13:19:14Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: /* The player's mission list */&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;
==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 and the reference number which is also the adverts place on the BBS. The advert is only added if the station is in space. There is no mission here, it is simply to illustrate the mechanics of adding an advert.&lt;br /&gt;
&lt;br /&gt;
 local Event = require &amp;quot;Event&amp;quot;&lt;br /&gt;
 local Comms = require &amp;quot;Comms&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 local ref  -- Variable to save the advert's reference number&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;
         Comms.ImportantMessage(station.label .. &amp;quot;\n&amp;quot; .. &amp;quot;Add ref number: &amp;quot; .. ref)&lt;br /&gt;
     end&lt;br /&gt;
 &lt;br /&gt;
     if station.type == 'STARPORT_ORBITAL' then&lt;br /&gt;
         ref = station:AddAdvert('Need the name of this station?',sendStationName)&lt;br /&gt;
     end&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 Event.Register(&amp;quot;onCreateBB&amp;quot;, onCreateBB)&lt;br /&gt;
&lt;br /&gt;
This code will create an advert:&lt;br /&gt;
&lt;br /&gt;
[[File:Stationname1.png]]&lt;br /&gt;
&lt;br /&gt;
Looking at the image, you will notice that the 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:Stationname2.png]]&lt;br /&gt;
&lt;br /&gt;
Even though the only thing our function did was to send a message to the console, you can see that Pioneer automatically created a form for our advert. The only control is the 'Hang up' button.&lt;br /&gt;
&lt;br /&gt;
Going back to the World View you can see the message on the Comms terminal:&lt;br /&gt;
&lt;br /&gt;
[[File:Stationname3.png]]&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 but in the following example &amp;lt;code&amp;gt;SetFace()&amp;lt;/code&amp;gt; is called without any arguments and the face will therefore be completely randomized.&lt;br /&gt;
&lt;br /&gt;
A minimal example without any clickable options:&lt;br /&gt;
&lt;br /&gt;
 local Event = import(&amp;quot;Event&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 local populateForm = function (form)&lt;br /&gt;
     form:SetTitle('This appears above the face picture')&lt;br /&gt;
     form:SetFace()&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;
 Event.Register(&amp;quot;onCreateBB&amp;quot;, onCreateBB)&lt;br /&gt;
&lt;br /&gt;
As before, an advert was created:&lt;br /&gt;
&lt;br /&gt;
[[File:Populateform2.png]]&lt;br /&gt;
&lt;br /&gt;
We have clicked on the ad and can see that &amp;lt;code&amp;gt;populateForm&amp;lt;/code&amp;gt; was called, and it successfully filled the form with content. If you 'hang up' and press the ad again a completely new face is generated. Lets improve on this and make the face persistent for the existence of the advert. Making it reappear in a saved game would take some more work (see &amp;quot;[[Surviving a reload]]&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
 local Character = require &amp;quot;Character&amp;quot;&lt;br /&gt;
 local Event = require &amp;quot;Event&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 local client = {}&lt;br /&gt;
 local message&lt;br /&gt;
 &lt;br /&gt;
 local populateForm = function (form)&lt;br /&gt;
     form:SetTitle('Pizza time!')&lt;br /&gt;
     form:SetFace(client)&lt;br /&gt;
     form:SetMessage(message)&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 local onCreateBB = function (station)&lt;br /&gt;
     client = Character.New()&lt;br /&gt;
     message = &amp;quot;I'm &amp;quot; .. client.name .. &amp;quot; and I need some pizza. I'm thinking pepperoni and cheeze. You feelin me?&amp;quot;&lt;br /&gt;
     station:AddAdvert('Special delivery needed',populateForm)&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 Event.Register(&amp;quot;onCreateBB&amp;quot;, onCreateBB)&lt;br /&gt;
&lt;br /&gt;
We introduce a new module ''' '[https://pioneerspacesim.net/codedoc/files2/Character-lua.html Character]' ''' which basically is an rpg style character sheet with methods to work with it. It's a tool to generate and work with non-player characters (npc's). &amp;lt;code&amp;gt;client = Character.New()&amp;lt;/code&amp;gt; sets client to an all new character with basic characteristics, name, title, and looks. A character can be sent directly to the SetFace method and that's what we're after here. We also used the 'clients' name.&lt;br /&gt;
&lt;br /&gt;
==Adding options to the form==&lt;br /&gt;
&lt;br /&gt;
In the example above, we 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. 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;
In the first example that called the function 'sendStationName' we caught the reference number from ''' 'AddAdvert()' ''' in a variable named  ''' 'ref' '''. As you may remember, ''' 'AddAdvert()' ''' takes two arguments; A string and a function. The function is passed three arguments. The second of these arguments is the reference number so we could have picked it up from within ''' 'sendStationName' '''. The ''' 'ref' ''' number is useful if your script adds several adverts, each of which might have slightly differently worded content.&lt;br /&gt;
&lt;br /&gt;
You've already learned the methods: ''' 'SetTitle()' ''', ''' 'SetMessage()' ''', and  ''' 'SetFace()' '''. Let's add the rest of the form() methods:&amp;lt;br&amp;gt;&lt;br /&gt;
* ''' form:AddOption() ''': adds clickable options with buttons. It takes two arguments: A string to set the text of the button and the option nr that will be sent to the form. This value is 0 when first called from the BBS by clicking the add. Every option form will have a default 'Hang up' option which returns -1.&amp;lt;br&amp;gt;&lt;br /&gt;
* ''' form:Clear() ''': removes the Message and Options, but preserves the Title and Face.&amp;lt;br&amp;gt;&lt;br /&gt;
* ''' form:Close() ''': Closes the form.&amp;lt;br&amp;gt;&lt;br /&gt;
* ''' form:RemoveAdvertOnClose() ''': Closes the form and removes the ad.&amp;lt;br&amp;gt;&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 option 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 onChat function below is adapted from an earlier example from the codedoc:&lt;br /&gt;
&lt;br /&gt;
 local Event = require 'Event'&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;Blue&amp;quot;,     3)&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;
         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;
         return&lt;br /&gt;
     end&lt;br /&gt;
 &lt;br /&gt;
     -- option 3 - blue&lt;br /&gt;
     if option == 3 then&lt;br /&gt;
         form:SetMessage(&amp;quot;Ahh blue, the colour of the ocean.&amp;quot;)&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;
 local onCreateBB = function (station)&lt;br /&gt;
     station:AddAdvert('onChat1',onChat)&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 Event.Register(&amp;quot;onCreateBB&amp;quot;, onCreateBB)&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 Event = require 'Event'&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;Blue&amp;quot;,     3)&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;
         end,&lt;br /&gt;
         [2] = function ()&lt;br /&gt;
             form:SetMessage(&amp;quot;Ahh green, the colour of trees.&amp;quot;)&lt;br /&gt;
         end,&lt;br /&gt;
         [3] = function ()&lt;br /&gt;
             form:SetMessage(&amp;quot;Ahh blue, the colour of the ocean.&amp;quot;)&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;
 local onCreateBB = function (station)&lt;br /&gt;
     station:AddAdvert('onChat2',onChat)&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 Event.Register(&amp;quot;onCreateBB&amp;quot;, onCreateBB)&lt;br /&gt;
&lt;br /&gt;
Try this out:&lt;br /&gt;
&lt;br /&gt;
* To understand what ''' 'form:Clear()' ''' does, comment out the line above containing it and restart Pioneer. As the form is no longer cleared and the 'Hang up' button is included automatically, there now appears to be only one form. The color selection buttons still works though.&lt;br /&gt;
&lt;br /&gt;
* Try adding 'Go back' buttons from the color options:&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;Go back&amp;quot;, 0)&lt;br /&gt;
 end,&lt;br /&gt;
&lt;br /&gt;
* Try booth suggestions above at the same time. ''' 'form:Clear()' ''' is your friend.&lt;br /&gt;
&lt;br /&gt;
* Stick this code into the second onChat example above (or adopt it to the first one) to try out ''' 'form:RemoveAdvertOnClose()' ''' and to test the ''' 'ref' ''' argument:&lt;br /&gt;
 form:AddOption(&amp;quot;Report post&amp;quot;, 4)   -- In option[0]&lt;br /&gt;
 &lt;br /&gt;
            ...&lt;br /&gt;
 &lt;br /&gt;
 [4] = function ()&lt;br /&gt;
     form:SetMessage(&amp;quot;The ad has been reported and will not be shown on your BBS. &amp;quot; ..&lt;br /&gt;
                     &amp;quot;Thank you for helping us to improve 'Haber Connect'!\n&amp;quot; ..&lt;br /&gt;
                     &amp;quot;The ad was number &amp;quot; .. ref .. &amp;quot; from the top of the list.&amp;quot; )&lt;br /&gt;
     form:RemoveAdvertOnClose()&lt;br /&gt;
 end,&lt;br /&gt;
&lt;br /&gt;
Please note! The '''ref''' nr and position in the '''BBS''' isn't really the same. It probably is the same when the '''BBS''' is first created and that's why it works here but if an add is removed in front of this 'test add' the '''ref''' nr will be one off. We're basically just poking the code a bit.&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. 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. 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;Mission.New()&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. Below follows a typical use case from the [https://codedoc.pioneerspacesim.net codedoc].&lt;br /&gt;
&lt;br /&gt;
Create a new mission and add it to the player’s mission list while retrieving the reference number:&lt;br /&gt;
&lt;br /&gt;
 ref = Mission.New({&lt;br /&gt;
     'type'      = 'Delivery', -- Must be a translatable token!&lt;br /&gt;
     'client'    = Character.New(),&lt;br /&gt;
     'due'       = Game.time + 3*24*60*60,       -- three days&lt;br /&gt;
     'reward'    = 123.45,&lt;br /&gt;
     'location'  = SystemPath:New(0,0,0,0,16),   -- Mars High, Sol&lt;br /&gt;
     'status'    = 'ACTIVE',&lt;br /&gt;
 })&lt;br /&gt;
&lt;br /&gt;
In practice, it might look more like this:&lt;br /&gt;
&lt;br /&gt;
 local Character = require 'Character'&lt;br /&gt;
 local Event = require 'Event'&lt;br /&gt;
 local Game = require 'Game'&lt;br /&gt;
 local Mission = require 'Mission'&lt;br /&gt;
 &lt;br /&gt;
 local missions = {}&lt;br /&gt;
 &lt;br /&gt;
 local onShipDocked = function (ship)&lt;br /&gt;
     if ship:IsPlayer() then&lt;br /&gt;
 &lt;br /&gt;
         table.insert(missions, Mission.New({&lt;br /&gt;
             type = &amp;quot;Taxi&amp;quot;,&lt;br /&gt;
             client = Character.New(),&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;
     end&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 Event.Register(&amp;quot;onShipDocked&amp;quot;, onShipDocked)&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. For this demonstration we've generated 'Taxi' missions and they will be recognized by the 'Taxi' module as such.&lt;br /&gt;
&lt;br /&gt;
This creates a mission visible on the mission screen:&lt;br /&gt;
&lt;br /&gt;
[[File:Missionlist3.png|1024px]]&lt;br /&gt;
&lt;br /&gt;
The next example is extended with a much scaled down version of the [https://github.com/pioneerspacesim/pioneer/blob/master/data/modules/DeliverPackage/DeliverPackage.lua#L418:L451 onShipDocked] function from the DeliverPackage module. Since these missions are recognized by a module in Pioneer already ('Taxi') they will 'probably' be handled at a later stage if we fail to remove them with this test mission. If you generate a new mission type you must also handle removing it or the mission will remain in the game forever. There is no automatic logic, and no automatic removal. Your script must keep track of them.&lt;br /&gt;
&lt;br /&gt;
 local Character = require 'Character'&lt;br /&gt;
 local Comms = require 'Comms'&lt;br /&gt;
 local Event = require 'Event'&lt;br /&gt;
 local Game = require 'Game'&lt;br /&gt;
 local Mission = require 'Mission'&lt;br /&gt;
 local Player = require 'Player'&lt;br /&gt;
 local Timer = require 'Timer'&lt;br /&gt;
 &lt;br /&gt;
 local missions = {}&lt;br /&gt;
 &lt;br /&gt;
 local onShipDocked = function (ship, station)&lt;br /&gt;
     if ship:IsPlayer() then&lt;br /&gt;
 &lt;br /&gt;
     -- On docking, starting a new game, we create&lt;br /&gt;
     -- two npc's and book them on a taxi mission. &lt;br /&gt;
         table.insert(missions, Mission.New({&lt;br /&gt;
             type = &amp;quot;Taxi&amp;quot;,&lt;br /&gt;
             client = Character.New(),&lt;br /&gt;
             due = Game.time + 10, -- ten seconds&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;
         table.insert(missions, Mission.New({&lt;br /&gt;
             type = &amp;quot;Taxi&amp;quot;,&lt;br /&gt;
             client = Character.New(),&lt;br /&gt;
             due = Game.time + 20, -- 20 seconds&lt;br /&gt;
             reward = 5000,&lt;br /&gt;
             location = Game.player.frameBody.path, -- here, basically&lt;br /&gt;
             status = 'ACTIVE'&lt;br /&gt;
         }))&lt;br /&gt;
     end&lt;br /&gt;
 &lt;br /&gt;
     -- Magically, without moving, we've arrived at the destination&lt;br /&gt;
     -- after 15 seconds and check in with our passengers.&lt;br /&gt;
     Timer:CallAt(Game.time+15, function ()  -- 15 seconds timer&lt;br /&gt;
         for ref,mission in pairs(missions) do&lt;br /&gt;
             if Game.time &amp;gt; mission.due then&lt;br /&gt;
                 mission.status = 'FAILED'&lt;br /&gt;
                 Comms.ImportantMessage('You suck dude! You suck like REALLY MUCH!', mission.client.name)&lt;br /&gt;
             else&lt;br /&gt;
                 Comms.ImportantMessage('Thanks for the ride!', mission.client.name)&lt;br /&gt;
                 mission.status = &amp;quot;COMPLETED&amp;quot;&lt;br /&gt;
                 Game.player:AddMoney(mission.reward)&lt;br /&gt;
             end&lt;br /&gt;
             mission:Remove()&lt;br /&gt;
             missions[ref] = nil&lt;br /&gt;
         end&lt;br /&gt;
     end)&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 Event.Register(&amp;quot;onShipDocked&amp;quot;, onShipDocked)&lt;br /&gt;
&lt;br /&gt;
Missions Created:&lt;br /&gt;
&lt;br /&gt;
[[File:Missionlist1.png]]&lt;br /&gt;
&lt;br /&gt;
1 Mission failed and 1 mission completed:&lt;br /&gt;
&lt;br /&gt;
[[File:Missionlist2.png]]&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;br /&gt;
&lt;br /&gt;
==Where to go from here==&lt;br /&gt;
To see simple example of BBS interaction used in the game, look in &amp;lt;code&amp;gt;data/modules/DonateToCranks/DonateToCranks.lua&amp;lt;/code&amp;gt;, and its accompanying language file &amp;lt;code&amp;gt;data/lang/modules-donatetocranks/en.json&amp;lt;/code&amp;gt;, and for an actual mission, look in &amp;lt;code&amp;gt;data/modules/DeliverPackage/DeliverPackage.lua&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Scripting_and_Mission_Creation&amp;diff=4463</id>
		<title>Scripting and Mission Creation</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Scripting_and_Mission_Creation&amp;diff=4463"/>
		<updated>2023-04-06T13:17:40Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See [http://lua-users.org/wiki/TutorialDirectory Lua Tutorial] to learn basics of lua.&lt;br /&gt;
&lt;br /&gt;
*[[Introduction_to_Mission_Scripting|Introduction to Mission Scripting]] &lt;br /&gt;
**[[Interacting_with_the_game:_Event-based_programming|Interacting with the game: Event based programming]] &lt;br /&gt;
**[[Strings_and_translation|Strings and translation]]&lt;br /&gt;
**[[Interacting_with_the_player:_BBS_forms|Interacting with the player: BBS forms]] &lt;br /&gt;
**[[Missions_and_NPC_Interaction|Missions and NPC interaction]]&lt;br /&gt;
**[[Surviving_a_reload|Surviving a reload]]&lt;br /&gt;
**[[Old_scripting_info|Older pages]]&lt;br /&gt;
*[[GUI introduction]]  &lt;br /&gt;
*[http://codedoc.pioneerspacesim.net Lua API Reference] &lt;br /&gt;
*[[Ship_AI|Ship AI]]&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Making_a_release&amp;diff=4443</id>
		<title>Making a release</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Making_a_release&amp;diff=4443"/>
		<updated>2023-02-07T18:26:22Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: Replaced content with &amp;quot;Page moved to: https://dev.pioneerspacesim.net/contribute/making-a-release&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Page moved to: https://dev.pioneerspacesim.net/contribute/making-a-release&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Translations&amp;diff=4357</id>
		<title>Translations</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Translations&amp;diff=4357"/>
		<updated>2022-11-26T15:32:30Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: /* For translators */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All text in Pioneer is translatable, and the game ships with several translations. Here's everything you need to know.&lt;br /&gt;
&lt;br /&gt;
== For translators ==&lt;br /&gt;
&lt;br /&gt;
All our translations are managed through [http://transifex.com Transifex], a free web-based translation service. To start writing translations, sign up there, using [https://www.transifex.com/signup/open-source/?join_project=pioneer this link], and then take a look at the [https://www.transifex.com/projects/p/pioneer/ Pioneer project]. You can either use the web-interface, or download the full file, and edit off line, and then re-upload.&lt;br /&gt;
&lt;br /&gt;
Changes to translations are automatically pulled into the master git repo, from transifex, twice per day, and from there to the builds when they're next run.&lt;br /&gt;
&lt;br /&gt;
In Transifex you can subscribe to notifications for the languages or resources you're interested in. When new strings are added or modified, you'll be told about it.&lt;br /&gt;
&lt;br /&gt;
If you want to translate Pioneer to an entirely new language, please [https://pioneerspacesim.net/issues open an issue] on the tracker and someone will create the translation for you.&lt;br /&gt;
&lt;br /&gt;
English is the canonical language for Pioneer. As such, you can't directly modify the english strings through Transifex. If you want to change those, you'll need to make the change in source code hosted in git and submit a pull request like for a normal code change.&lt;br /&gt;
&lt;br /&gt;
Untranslated strings will use the value from the English version.&lt;br /&gt;
&lt;br /&gt;
You can leave comments in Transifex to help out other translators. You'll also see any notes left by the developers to help you translate a particular string.&lt;br /&gt;
&lt;br /&gt;
If you're a new translator and you'd like your name included in AUTHORS.txt, please let us know!&lt;br /&gt;
&lt;br /&gt;
== For mod developers ==&lt;br /&gt;
&lt;br /&gt;
Each module gets its own translation resource, called &amp;lt;tt&amp;gt;module-foo&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To get at the strings for your module, do something like:&lt;br /&gt;
&lt;br /&gt;
    local Lang = import(&amp;quot;Lang&amp;quot;)&lt;br /&gt;
    local l = Lang.GetResource(&amp;quot;module-foo&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Then you can get at the string by its token:&lt;br /&gt;
&lt;br /&gt;
    print(l.SOME_TRANSLATED_STRING)&lt;br /&gt;
&lt;br /&gt;
While its possible to load multiple translation resources to share strings, its highly recommended that you don't do that. Stick to your own strings so that you don't have to track changes in other modules. Duplicates across resources are fine. Note that code that uses multiple resources won't be accepted into the main Pioneer repository unless you've checked it with a core developer first and it has a good reason.&lt;br /&gt;
&lt;br /&gt;
Translations are [https://developer.chrome.com/extensions/i18n.html &amp;lt;tt&amp;gt;chrome.i18n&amp;lt;/tt&amp;gt; JSON] files. The format is fairly simple - a JSON object with tokens as keys and values of an object with two keys, &amp;lt;tt&amp;gt;message&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;description&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;message&amp;lt;/tt&amp;gt; is the text that will appear in the game, while &amp;lt;tt&amp;gt;description&amp;lt;/tt&amp;gt; provides instructions for the translator that will be displayed in Transifex. [http://json.org/string.gif Here] is a useful chart showing how characters are interpreted.&lt;br /&gt;
&lt;br /&gt;
If you're submitting code that requires a new language you should only include &amp;lt;tt&amp;gt;en.json&amp;lt;/tt&amp;gt;. Please tag '''@impaktor''' in your pull request so they can create a new resource in Transifex and make sure a language update is done at merge. If you don't do this then you'll break the game for non-English users.&lt;br /&gt;
&lt;br /&gt;
== For core developers ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;core&amp;lt;/tt&amp;gt; resource is magical. If you add a string to it, you also need to add it to &amp;lt;tt&amp;gt;LangStrings.inc.h&amp;lt;/tt&amp;gt; and recompile. It will then be available as &amp;lt;tt&amp;gt;Lang::SOME_TRANSLATED_STRING&amp;lt;/tt&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.pioneerspacesim.net/index.php?title=Development_Tools&amp;diff=4356</id>
		<title>Development Tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.pioneerspacesim.net/index.php?title=Development_Tools&amp;diff=4356"/>
		<updated>2022-10-01T10:20:54Z</updated>

		<summary type="html">&lt;p&gt;Impaktor: /* Compile with Debug support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here we aim to document little known features that developers add to help themselves in the development process, wheather that be debugging, profiling, or what else&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Debug ==&lt;br /&gt;
&lt;br /&gt;
=== Compile with Debug support === &lt;br /&gt;
Build debug &lt;br /&gt;
&lt;br /&gt;
    ./bootstrap -DCMAKE_BUILD_TYPE=Debug&lt;br /&gt;
&lt;br /&gt;
You can now use debugger, like [https://felix-knorr.net/blog/using_gdb_directly.html gdb] (for more advanced gdb tricks see [https://begriffs.com/posts/2022-07-17-debugging-gdb-ddd.html Pleasant debugging with GDB and DDD]; there's also [https://github.com/epasveer/seer GUI available] for gdb.)&lt;br /&gt;
&lt;br /&gt;
=== Document weirdness ===&lt;br /&gt;
&lt;br /&gt;
To record video from gameplay (e.g. to document unexpected behavior):&lt;br /&gt;
&lt;br /&gt;
    To record video directly from Pioneer you will need to add the line&lt;br /&gt;
    RecordVideo=1 somewhere within your config.ini file. Then once ingame&lt;br /&gt;
    you can press Ctrl+ScrLk to start or stop recording.&lt;br /&gt;
&lt;br /&gt;
=== Debug from in-game ===&lt;br /&gt;
&lt;br /&gt;
Ctrl+I = debug window&lt;br /&gt;
&lt;br /&gt;
Ctrl+F10 open planet viewer, to view selected nav target&lt;br /&gt;
&lt;br /&gt;
Ctrl+F11 reload shaders while running game&lt;br /&gt;
&lt;br /&gt;
Ctrl+Del reload pigui element, allows for live coding. Limited support: Only reloads the active view and then only if the active view has manually enabled it (add `debugReload = function() package.reimport() end` to the view's definition next to the draw and refresh functions)&lt;br /&gt;
&lt;br /&gt;
=== Debug savegame files ===&lt;br /&gt;
&lt;br /&gt;
 ./build/savegamedump savefiles/&amp;lt;mysavename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and look in your savefile folder (e.g. ~/.pioneer/savefiles on linux) at &amp;lt;mysavename&amp;gt;.json file, put JSON e.g. into http://jsonviewer.stack.hu/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debug Lua Callstack ===&lt;br /&gt;
&lt;br /&gt;
A lua callstack can also help - there's a function in lua/core/Sandbox.cpp that can be called in the debugger to get a callstack&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Misc. ===&lt;br /&gt;
&lt;br /&gt;
Pioneer can dump galaxy information, to make sure the galaxy hasn't changed, or to gather statistics, described here:&lt;br /&gt;
https://github.com/pioneerspacesim/pioneer/pull/2811&lt;br /&gt;
&lt;br /&gt;
The quit confirmation box can be supressed by putting ConfirmQuit=0 in the pioneer configuration file&lt;br /&gt;
&lt;br /&gt;
== Profiling ==&lt;br /&gt;
&lt;br /&gt;
For Profiling, one needs some tools installed?&lt;br /&gt;
&lt;br /&gt;
Now new profiling functions merged:&lt;br /&gt;
[https://github.com/pioneerspacesim/pioneer/pull/5168 Add zone-based profiling support #5168]&lt;br /&gt;
&lt;br /&gt;
There's also support for chrome://tracing format event to JSON, for better visualization, since&lt;br /&gt;
[https://github.com/pioneerspacesim/pioneer/pull/5380  Add Chrome-Tracing output support to profiler #5380]&lt;br /&gt;
&lt;br /&gt;
=== Build with profiling support ===&lt;br /&gt;
&lt;br /&gt;
ToDo edit this to improve and make sense and be correct&lt;br /&gt;
&lt;br /&gt;
Profiling: to build with the profiler enabled, simply run ./bootstrap&lt;br /&gt;
-DPROFILER_ENABLED=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo and compile as normal.&lt;br /&gt;
The latter flag is not strictly needed, but building with a BUILD_TYPE&lt;br /&gt;
&lt;br /&gt;
To-do: extract wisdome from this conversation, https://github.com/pioneerspacesim/pioneer/pull/4764 and document here&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;fluffyfreak&amp;gt; Gliese852, if you're on Windows then I use&lt;br /&gt;
                  https://github.com/VerySleepy/verysleepy a lot of the time&lt;br /&gt;
                  [17:37:07]&lt;br /&gt;
    &amp;lt;Gliese852&amp;gt; fluffyfreak: thanks, I meant the built-in profiler, it seems that&lt;br /&gt;
                if you do nothing, it creates a report on the launch of the&lt;br /&gt;
                program, and the launch of a new game [17:54:21]&lt;br /&gt;
    &amp;lt;fluffyfreak&amp;gt; If you're running the profile build then you can press Ctrl+p to&lt;br /&gt;
                  take a profile at any time [17:58:50]&lt;br /&gt;
    &amp;lt;fluffyfreak&amp;gt; hmm, been a while since I used it. There's two modes [17:59:37]&lt;br /&gt;
    &amp;lt;fluffyfreak&amp;gt; Ctrl+shift+p = is capture one frame, otherwise Ctrl+p toggles&lt;br /&gt;
                  capturing whenever the framerate is &amp;quot;slow&amp;quot; [18:00:12]&lt;br /&gt;
    &lt;br /&gt;
=== Using profiler ===&lt;br /&gt;
&lt;br /&gt;
to do&lt;br /&gt;
&lt;br /&gt;
=== clang format check ===&lt;br /&gt;
&lt;br /&gt;
    Yes, for your use you'd likely want to invoke `FORMAT_BASE=master ./autoformat` or `FORMAT_BASE=HEAD~1 ./autoformat`&lt;br /&gt;
    - there's little difference between the `autoformat` script and the `scripts/clang-format.sh` script other than the &lt;br /&gt;
    latter prompts you to automatically apply the issues in your files.&lt;br /&gt;
&lt;br /&gt;
== Editor integration ==&lt;br /&gt;
&lt;br /&gt;
There is support for sending Lua code from IDE into running pioneer session via TCP:&lt;br /&gt;
https://github.com/pioneerspacesim/pioneer/pull/3768&lt;br /&gt;
https://github.com/pioneerspacesim/pioneer/pull/4799&lt;br /&gt;
&lt;br /&gt;
=== Easy start (Linux) ===&lt;br /&gt;
&lt;br /&gt;
1. Reconfigure with remote lua console support and rebuild:&lt;br /&gt;
 ./bootstrap -DREMOTE_LUA_REPL=ON&lt;br /&gt;
 make -C build -j4&lt;br /&gt;
&lt;br /&gt;
2. Now after starting a new, or loading a saved game, you can connect to the program via telnet on port '''12345''':&lt;br /&gt;
&lt;br /&gt;
 $ telnet localhost 12345&lt;br /&gt;
 Trying 127.0.0.1...&lt;br /&gt;
 Connected to localhost.&lt;br /&gt;
 Escape character is '^]'.&lt;br /&gt;
 ** Welcome to the Pioneer Remote Debugging Console!&lt;br /&gt;
 &amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you can run any lua commands.&lt;br /&gt;
&lt;br /&gt;
=== Example of use with VIM for hot reloading of the module ===&lt;br /&gt;
&lt;br /&gt;
I added the following code to '''~/.vimrc:'''&lt;br /&gt;
 nmap ;mm :w&amp;lt;CR&amp;gt;:call PioneerReloadModuleFnc(expand(&amp;quot;%&amp;quot;))&amp;lt;CR&amp;gt;&amp;lt;CR&amp;gt;&lt;br /&gt;
 function! PioneerReloadModuleFnc(filename)&lt;br /&gt;
 	let s:data = strcharpart(a:filename, 0, 4)&lt;br /&gt;
 	let s:lua = strcharpart(a:filename, strlen(a:filename) - 3, 4)&lt;br /&gt;
 	if s:data == &amp;quot;data&amp;quot; &amp;amp;&amp;amp; s:lua == &amp;quot;lua&amp;quot;&lt;br /&gt;
 		let s:crop = strcharpart(a:filename, 5, strlen(a:filename) - 9)&lt;br /&gt;
 		let s:convert = substitute(s:crop, &amp;quot;/&amp;quot;, &amp;quot;.&amp;quot;, &amp;quot;g&amp;quot;)&lt;br /&gt;
 		let s:command = &amp;quot;package.reimport(\&amp;quot;&amp;quot; . s:convert . &amp;quot;\&amp;quot;)&amp;quot;&lt;br /&gt;
 		:execute &amp;quot;!echo '&amp;quot;. s:command . &amp;quot;' | telnet localhost 12345&amp;quot;&lt;br /&gt;
 	else&lt;br /&gt;
 		:echom &amp;quot;ERROR: file should be \&amp;quot;*.lua\&amp;quot; and in \&amp;quot;data\&amp;quot; subfolder&amp;quot;&lt;br /&gt;
 	endif&lt;br /&gt;
 endfunction&lt;br /&gt;
&lt;br /&gt;
Now when pressing the combination ''';mm''' in normal mode, the file is saved, then telnet is launched and the command is sent:&lt;br /&gt;
 package.reimport(&amp;lt;your module name&amp;gt;)&lt;br /&gt;
where the module name is taken from the name of the file being edited. This leads to a reload of this module without restarting the game.&lt;br /&gt;
&lt;br /&gt;
A short video of how it might look: https://youtu.be/f5s_tuAv6fc&lt;/div&gt;</summary>
		<author><name>Impaktor</name></author>
		
	</entry>
</feed>