<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://backup.witchspacewiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Captain+Berf</id>
	<title>Elite Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://backup.witchspacewiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Captain+Berf"/>
	<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php/Special:Contributions/Captain_Berf"/>
	<updated>2026-04-16T07:14:27Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Viewing_a_Texture_or_Model&amp;diff=16954</id>
		<title>Viewing a Texture or Model</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Viewing_a_Texture_or_Model&amp;diff=16954"/>
		<updated>2009-11-21T06:29:40Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How to view a specific model and / or texture in Oolite. ==&lt;br /&gt;
&lt;br /&gt;
===Using the in-game external views===&lt;br /&gt;
&lt;br /&gt;
If the ship you want to view is your player ship simply launch the ship and press v to cycle through the external views. &lt;br /&gt;
Otherwise ...&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Install Debug.oxp===&lt;br /&gt;
&lt;br /&gt;
  1. Add Debug.oxp to your Oolite AddOns [http://wiki.alioth.net/index.php/Debug_OXP]&lt;br /&gt;
     -- Extract the archive.&lt;br /&gt;
     -- Move the extracted folder Debug.oxp to $PROGDIR/AddOns/&lt;br /&gt;
  2. Install PyDebugConsole [https://developer.berlios.de/project/showfiles.php?group_id=3577]&lt;br /&gt;
     -- Extract the archive&lt;br /&gt;
     -- Put the directory OODebugConsole wherever you like&lt;br /&gt;
&lt;br /&gt;
===Run Oolite with the DebugConsole=== &lt;br /&gt;
&lt;br /&gt;
  1. Run the DebugConsole [WhereverIPutIt/OODebugConsole/OODebugConsole.exe]&lt;br /&gt;
  2. Start Oolite&lt;br /&gt;
      (If you have modified an oxp hold down the shift key during during the boot&lt;br /&gt;
      to clear the cache)&lt;br /&gt;
  3. Launch into space [Press 1](moving into a clear area helps). &lt;br /&gt;
&lt;br /&gt;
===Spawning the ship you want to view actively in the game=== &lt;br /&gt;
&lt;br /&gt;
====Spawning the ship====&lt;br /&gt;
&lt;br /&gt;
Type in the console&lt;br /&gt;
&lt;br /&gt;
  :spawn ''shipUniqueRole''&lt;br /&gt;
&lt;br /&gt;
where ''shipUniqueRole'' is the parameter to be passed to the :spawn macro. &lt;br /&gt;
&lt;br /&gt;
====Finding the ''shipUniqueRole''====&lt;br /&gt;
&lt;br /&gt;
To find the correct argument for ''shipUniqueRole'' refer to [i.e. open in a text editor]&lt;br /&gt;
&lt;br /&gt;
   config\shipdata.plist &lt;br /&gt;
&lt;br /&gt;
Find the entry for the ship in question in the shipdata.plist. [we'll call it shipX]&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Find the defined roles&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Use one of the defined roles as the argument for :spawn [found between ''&amp;lt;string&amp;gt;&amp;lt;/string&amp;gt;'']&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
         &amp;lt;dict&amp;gt; &lt;br /&gt;
         ... &lt;br /&gt;
           &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
             &amp;lt;string&amp;gt;shipX-trader shipX-escort shipX-hunter&amp;lt;/string&amp;gt; &lt;br /&gt;
         ... &lt;br /&gt;
         &amp;lt;/dict&amp;gt; &lt;br /&gt;
&lt;br /&gt;
yields&lt;br /&gt;
&lt;br /&gt;
       :spawn shipX-trader &lt;br /&gt;
in the console. &lt;br /&gt;
&lt;br /&gt;
====Modifying the shipdata.plist====&lt;br /&gt;
&lt;br /&gt;
If all the defined roles are generic* modify the shipdata.plist from:&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
         &amp;lt;dict&amp;gt; &lt;br /&gt;
         ... &lt;br /&gt;
           &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
             &amp;lt;string&amp;gt;trader escort hunter&amp;lt;/string&amp;gt;&lt;br /&gt;
         ... &lt;br /&gt;
         &amp;lt;/dict&amp;gt; &lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
         &amp;lt;dict&amp;gt; &lt;br /&gt;
         ... &lt;br /&gt;
           &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
             &amp;lt;string&amp;gt;shipX-trader trader escort hunter&amp;lt;/string&amp;gt; &lt;br /&gt;
         ...&lt;br /&gt;
         &amp;lt;/dict&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[* If the defined roles are only generic e.g trader|pirate|hunter|etc then a random ship fulfilling the role will be spawned. Not necessarily the one you wanted.]&lt;br /&gt;
&lt;br /&gt;
[Make sure to use a text editor suitable for programming. One that doesn't change the encoding or add junk to the file. EOL=LF+CR] &lt;br /&gt;
&lt;br /&gt;
====To park the spawned ship====&lt;br /&gt;
&lt;br /&gt;
To park the spawned ship target it then enter in the console&lt;br /&gt;
&lt;br /&gt;
  player.ship.target.setAI(&amp;quot;dumbAI.plist&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
To manipulate sub entities (if the ship has any) use the command:&lt;br /&gt;
&lt;br /&gt;
  player.ship.target.subEntities[0].position = [x, y, z]&lt;br /&gt;
&lt;br /&gt;
===View a rotating ship Mission Screen style===&lt;br /&gt;
 &lt;br /&gt;
These commands work when you are docked in the station.&lt;br /&gt;
&lt;br /&gt;
[for version 1.7.3]&lt;br /&gt;
&lt;br /&gt;
Enter in the console&lt;br /&gt;
&lt;br /&gt;
  mission.runMissionScreen(null,null,null,'shipUniqueRole')&lt;br /&gt;
&lt;br /&gt;
which, using the ShipX convention yields&lt;br /&gt;
&lt;br /&gt;
  mission.runMissionScreen(null,null,null,'ShipX-Trader')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Coming soon to a stable version near you...]&lt;br /&gt;
&lt;br /&gt;
Enter in the console&lt;br /&gt;
&lt;br /&gt;
  mission.runScreen({model:'shipUniqueRole'})&lt;br /&gt;
&lt;br /&gt;
which, using the ShipX convention yields&lt;br /&gt;
&lt;br /&gt;
  mission.runScreen({model:'ShipX-Trader'})&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Viewing_a_Texture_or_Model&amp;diff=16953</id>
		<title>Viewing a Texture or Model</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Viewing_a_Texture_or_Model&amp;diff=16953"/>
		<updated>2009-11-21T06:28:33Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How to view a specific model and / or texture in Oolite. ==&lt;br /&gt;
&lt;br /&gt;
===Using the in-game external views===&lt;br /&gt;
&lt;br /&gt;
If the ship you want to view is your player ship simply launch the ship and press v to cycle through the external views. &lt;br /&gt;
&lt;br /&gt;
===Install Debug.oxp===&lt;br /&gt;
&lt;br /&gt;
  1. Add Debug.oxp to your Oolite AddOns [http://wiki.alioth.net/index.php/Debug_OXP]&lt;br /&gt;
     -- Extract the archive.&lt;br /&gt;
     -- Move the extracted folder Debug.oxp to $PROGDIR/AddOns/&lt;br /&gt;
  2. Install PyDebugConsole [https://developer.berlios.de/project/showfiles.php?group_id=3577]&lt;br /&gt;
     -- Extract the archive&lt;br /&gt;
     -- Put the directory OODebugConsole wherever you like&lt;br /&gt;
&lt;br /&gt;
===Run Oolite with the DebugConsole=== &lt;br /&gt;
&lt;br /&gt;
  1. Run the DebugConsole [WhereverIPutIt/OODebugConsole/OODebugConsole.exe]&lt;br /&gt;
  2. Start Oolite&lt;br /&gt;
      (If you have modified an oxp hold down the shift key during during the boot&lt;br /&gt;
      to clear the cache)&lt;br /&gt;
  3. Launch into space [Press 1](moving into a clear area helps). &lt;br /&gt;
&lt;br /&gt;
===Spawning the ship you want to view actively in the game=== &lt;br /&gt;
&lt;br /&gt;
====Spawning the ship====&lt;br /&gt;
&lt;br /&gt;
Type in the console&lt;br /&gt;
&lt;br /&gt;
  :spawn ''shipUniqueRole''&lt;br /&gt;
&lt;br /&gt;
where ''shipUniqueRole'' is the parameter to be passed to the :spawn macro. &lt;br /&gt;
&lt;br /&gt;
====Finding the ''shipUniqueRole''====&lt;br /&gt;
&lt;br /&gt;
To find the correct argument for ''shipUniqueRole'' refer to [i.e. open in a text editor]&lt;br /&gt;
&lt;br /&gt;
   config\shipdata.plist &lt;br /&gt;
&lt;br /&gt;
Find the entry for the ship in question in the shipdata.plist. [we'll call it shipX]&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Find the defined roles&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Use one of the defined roles as the argument for :spawn [found between ''&amp;lt;string&amp;gt;&amp;lt;/string&amp;gt;'']&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
         &amp;lt;dict&amp;gt; &lt;br /&gt;
         ... &lt;br /&gt;
           &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
             &amp;lt;string&amp;gt;shipX-trader shipX-escort shipX-hunter&amp;lt;/string&amp;gt; &lt;br /&gt;
         ... &lt;br /&gt;
         &amp;lt;/dict&amp;gt; &lt;br /&gt;
&lt;br /&gt;
yields&lt;br /&gt;
&lt;br /&gt;
       :spawn shipX-trader &lt;br /&gt;
in the console. &lt;br /&gt;
&lt;br /&gt;
====Modifying the shipdata.plist====&lt;br /&gt;
&lt;br /&gt;
If all the defined roles are generic* modify the shipdata.plist from:&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
         &amp;lt;dict&amp;gt; &lt;br /&gt;
         ... &lt;br /&gt;
           &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
             &amp;lt;string&amp;gt;trader escort hunter&amp;lt;/string&amp;gt;&lt;br /&gt;
         ... &lt;br /&gt;
         &amp;lt;/dict&amp;gt; &lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
         &amp;lt;dict&amp;gt; &lt;br /&gt;
         ... &lt;br /&gt;
           &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
             &amp;lt;string&amp;gt;shipX-trader trader escort hunter&amp;lt;/string&amp;gt; &lt;br /&gt;
         ...&lt;br /&gt;
         &amp;lt;/dict&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[* If the defined roles are only generic e.g trader|pirate|hunter|etc then a random ship fulfilling the role will be spawned. Not necessarily the one you wanted.]&lt;br /&gt;
&lt;br /&gt;
[Make sure to use a text editor suitable for programming. One that doesn't change the encoding or add junk to the file. EOL=LF+CR] &lt;br /&gt;
&lt;br /&gt;
====To park the spawned ship====&lt;br /&gt;
&lt;br /&gt;
To park the spawned ship target it then enter in the console&lt;br /&gt;
&lt;br /&gt;
  player.ship.target.setAI(&amp;quot;dumbAI.plist&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
To manipulate sub entities (if the ship has any) use the command:&lt;br /&gt;
&lt;br /&gt;
  player.ship.target.subEntities[0].position = [x, y, z]&lt;br /&gt;
&lt;br /&gt;
===View a rotating ship Mission Screen style===&lt;br /&gt;
 &lt;br /&gt;
These commands work when you are docked in the station.&lt;br /&gt;
&lt;br /&gt;
[for version 1.7.3]&lt;br /&gt;
&lt;br /&gt;
Enter in the console&lt;br /&gt;
&lt;br /&gt;
  mission.runMissionScreen(null,null,null,'shipUniqueRole')&lt;br /&gt;
&lt;br /&gt;
which, using the ShipX convention yields&lt;br /&gt;
&lt;br /&gt;
  mission.runMissionScreen(null,null,null,'ShipX-Trader')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Coming soon to a stable version near you...]&lt;br /&gt;
&lt;br /&gt;
Enter in the console&lt;br /&gt;
&lt;br /&gt;
  mission.runScreen({model:'shipUniqueRole'})&lt;br /&gt;
&lt;br /&gt;
which, using the ShipX convention yields&lt;br /&gt;
&lt;br /&gt;
  mission.runScreen({model:'ShipX-Trader'})&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Viewing_a_Texture_or_Model&amp;diff=16952</id>
		<title>Viewing a Texture or Model</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Viewing_a_Texture_or_Model&amp;diff=16952"/>
		<updated>2009-11-21T05:52:17Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How to view a specific model and / or texture in Oolite. ==&lt;br /&gt;
&lt;br /&gt;
If the ship you want to view is your player ship simply launch the ship and press v to cycle through the external views. &lt;br /&gt;
&lt;br /&gt;
===Install Debug.oxp===&lt;br /&gt;
&lt;br /&gt;
  1. Add Debug.oxp to your Oolite AddOns [http://wiki.alioth.net/index.php/Debug_OXP]&lt;br /&gt;
     -- Extract the archive.&lt;br /&gt;
     -- Move the extracted folder Debug.oxp to $PROGDIR/AddOns/&lt;br /&gt;
  2. Install PyDebugConsole [https://developer.berlios.de/project/showfiles.php?group_id=3577]&lt;br /&gt;
     -- Extract the archive&lt;br /&gt;
     -- Put the directory OODebugConsole wherever you like&lt;br /&gt;
&lt;br /&gt;
===Run Oolite with the DebugConsole=== &lt;br /&gt;
&lt;br /&gt;
  1. Run the DebugConsole [WhereverIPutIt/OODebugConsole/OODebugConsole.exe]&lt;br /&gt;
  2. Start Oolite&lt;br /&gt;
      (If you have modified an oxp hold down the shift key during during the boot&lt;br /&gt;
      to clear the cache)&lt;br /&gt;
  3. Launch into space [Press 1](moving into a clear area helps). &lt;br /&gt;
&lt;br /&gt;
===Spawning the ship you want to view actively in the game=== &lt;br /&gt;
&lt;br /&gt;
====Spawning the ship====&lt;br /&gt;
&lt;br /&gt;
Type in the console&lt;br /&gt;
&lt;br /&gt;
  :spawn ''shipUniqueRole''&lt;br /&gt;
&lt;br /&gt;
where ''shipUniqueRole'' is the parameter to be passed to the :spawn macro. &lt;br /&gt;
&lt;br /&gt;
====Finding the ''shipUniqueRole''====&lt;br /&gt;
&lt;br /&gt;
To find the correct argument for ''shipUniqueRole'' refer to [i.e. open in a text editor]&lt;br /&gt;
&lt;br /&gt;
   config\shipdata.plist &lt;br /&gt;
&lt;br /&gt;
Find the entry for the ship in question in the shipdata.plist. [we'll call it shipX]&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Find the defined roles&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Use one of the defined roles as the argument for :spawn [found between ''&amp;lt;string&amp;gt;&amp;lt;/string&amp;gt;'']&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
         &amp;lt;dict&amp;gt; &lt;br /&gt;
         ... &lt;br /&gt;
           &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
             &amp;lt;string&amp;gt;shipX-trader shipX-escort shipX-hunter&amp;lt;/string&amp;gt; &lt;br /&gt;
         ... &lt;br /&gt;
         &amp;lt;/dict&amp;gt; &lt;br /&gt;
&lt;br /&gt;
yields&lt;br /&gt;
&lt;br /&gt;
       :spawn shipX-trader &lt;br /&gt;
in the console. &lt;br /&gt;
&lt;br /&gt;
====Modifying the shipdata.plist====&lt;br /&gt;
&lt;br /&gt;
If all the defined roles are generic* modify the shipdata.plist from:&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
         &amp;lt;dict&amp;gt; &lt;br /&gt;
         ... &lt;br /&gt;
           &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
             &amp;lt;string&amp;gt;trader escort hunter&amp;lt;/string&amp;gt;&lt;br /&gt;
         ... &lt;br /&gt;
         &amp;lt;/dict&amp;gt; &lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
         &amp;lt;dict&amp;gt; &lt;br /&gt;
         ... &lt;br /&gt;
           &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
             &amp;lt;string&amp;gt;shipX-trader trader escort hunter&amp;lt;/string&amp;gt; &lt;br /&gt;
         ...&lt;br /&gt;
         &amp;lt;/dict&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[* If the defined roles are only generic e.g trader|pirate|hunter|etc then a random ship fulfilling the role will be spawned. Not necessarily the one you wanted.]&lt;br /&gt;
&lt;br /&gt;
[Make sure to use a text editor suitable for programming. One that doesn't change the encoding or add junk to the file. EOL=LF+CR] &lt;br /&gt;
&lt;br /&gt;
====To park the spawned ship====&lt;br /&gt;
&lt;br /&gt;
To park the spawned ship target it then enter in the console&lt;br /&gt;
&lt;br /&gt;
  player.ship.target.setAI(&amp;quot;dumbAI.plist&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
To manipulate sub entities (if the ship has any) use the command:&lt;br /&gt;
&lt;br /&gt;
  player.ship.target.subEntities[0].position = [x, y, z]&lt;br /&gt;
&lt;br /&gt;
===View a rotating ship Mission Screen style===&lt;br /&gt;
 &lt;br /&gt;
These commands work when you are docked in the station.&lt;br /&gt;
&lt;br /&gt;
[for version 1.7.3]&lt;br /&gt;
&lt;br /&gt;
Enter in the console&lt;br /&gt;
&lt;br /&gt;
  mission.runMissionScreen(null,null,null,'shipUniqueRole')&lt;br /&gt;
&lt;br /&gt;
which, using the ShipX convention yields&lt;br /&gt;
&lt;br /&gt;
  mission.runMissionScreen(null,null,null,'ShipX-Trader')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Coming soon to a stable version near you...]&lt;br /&gt;
&lt;br /&gt;
Enter in the console&lt;br /&gt;
&lt;br /&gt;
  mission.runScreen({model:'shipUniqueRole'})&lt;br /&gt;
&lt;br /&gt;
which, using the ShipX convention yields&lt;br /&gt;
&lt;br /&gt;
  mission.runScreen({model:'ShipX-Trader'})&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Viewing_a_Texture_or_Model&amp;diff=16951</id>
		<title>Viewing a Texture or Model</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Viewing_a_Texture_or_Model&amp;diff=16951"/>
		<updated>2009-11-21T05:24:40Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How to view a specific model and / or texture in Oolite. ==&lt;br /&gt;
&lt;br /&gt;
If the ship you want to view is your player ship simply launch the ship and press v to cycle through the external views. &lt;br /&gt;
&lt;br /&gt;
===Install Debug.oxp===&lt;br /&gt;
&lt;br /&gt;
  1. Add Debug.oxp to your Oolite AddOns [http://wiki.alioth.net/index.php/Debug_OXP]&lt;br /&gt;
     -- Extract the archive.&lt;br /&gt;
     -- Move the extracted folder Debug.oxp to $PROGDIR/AddOns/&lt;br /&gt;
  2. Install PyDebugConsole [https://developer.berlios.de/project/showfiles.php?group_id=3577]&lt;br /&gt;
     -- Extract the archive&lt;br /&gt;
     -- Put the directory OODebugConsole wherever you like&lt;br /&gt;
&lt;br /&gt;
===Run Oolite with the DebugConsole=== &lt;br /&gt;
&lt;br /&gt;
  1. Run the DebugConsole [WhereverIPutIt/OODebugConsole/OODebugConsole.exe]&lt;br /&gt;
  2. Start Oolite&lt;br /&gt;
      (If you have modified an oxp hold down the shift key during during the boot&lt;br /&gt;
      to clear the cache)&lt;br /&gt;
  3. Launch into space [Press 1](moving into a clear area helps). &lt;br /&gt;
&lt;br /&gt;
===Spawning the ship you want to view actively in the game=== &lt;br /&gt;
&lt;br /&gt;
====Spawning the ship====&lt;br /&gt;
&lt;br /&gt;
Type in the console&lt;br /&gt;
&lt;br /&gt;
  :spawn ''shipUniqueRole''&lt;br /&gt;
&lt;br /&gt;
where ''shipUniqueRole'' is the parameter to be passed to the :spawn macro. &lt;br /&gt;
&lt;br /&gt;
====Finding the ''shipUniqueRole''====&lt;br /&gt;
&lt;br /&gt;
To find the correct argument for ''shipUniqueRole'' refer to [i.e. open in a text editor]&lt;br /&gt;
&lt;br /&gt;
   config\shipdata.plist &lt;br /&gt;
&lt;br /&gt;
Find the entry for the ship in question in the shipdata.plist. [we'll call it shipX]&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Find the defined roles&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Use one of the defined roles as the argument for :spawn [found between ''&amp;lt;string&amp;gt;&amp;lt;/string&amp;gt;'']&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
         &amp;lt;dict&amp;gt; &lt;br /&gt;
         ... &lt;br /&gt;
           &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
             &amp;lt;string&amp;gt;shipX-trader shipX-escort shipX-hunter&amp;lt;/string&amp;gt; &lt;br /&gt;
         ... &lt;br /&gt;
         &amp;lt;/dict&amp;gt; &lt;br /&gt;
&lt;br /&gt;
yields&lt;br /&gt;
&lt;br /&gt;
       :spawn shipX-trader &lt;br /&gt;
in the console. &lt;br /&gt;
&lt;br /&gt;
====Modifying the shipdata.plist====&lt;br /&gt;
&lt;br /&gt;
If all the defined roles are generic* modify the shipdata.plist from:&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
         &amp;lt;dict&amp;gt; &lt;br /&gt;
         ... &lt;br /&gt;
           &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
             &amp;lt;string&amp;gt;trader escort hunter&amp;lt;/string&amp;gt;&lt;br /&gt;
         ... &lt;br /&gt;
         &amp;lt;/dict&amp;gt; &lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
         &amp;lt;dict&amp;gt; &lt;br /&gt;
         ... &lt;br /&gt;
           &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
             &amp;lt;string&amp;gt;shipX-trader trader escort hunter&amp;lt;/string&amp;gt; &lt;br /&gt;
         ...&lt;br /&gt;
         &amp;lt;/dict&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[* If the defined roles are only generic e.g trader|pirate|hunter|etc then a random ship fulfilling the role will be spawned. Not necessarily the one you wanted.]&lt;br /&gt;
&lt;br /&gt;
[Make sure to use a text editor suitable for programming. One that doesn't change the encoding or add junk to the file. EOL=LF+CR] &lt;br /&gt;
&lt;br /&gt;
====To park the spawned ship====&lt;br /&gt;
&lt;br /&gt;
To park the spawned ship target it then enter in the console&lt;br /&gt;
&lt;br /&gt;
  player.ship.target.setAI(&amp;quot;dumbAI.plist&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
To manipulate sub entities (if the ship has any) use the command:&lt;br /&gt;
&lt;br /&gt;
  player.ship.target.subEntities[0].position = [x, y, z]&lt;br /&gt;
&lt;br /&gt;
===View a rotating ship Mission Screen style===&lt;br /&gt;
 &lt;br /&gt;
These commands work when you are docked in the station.&lt;br /&gt;
&lt;br /&gt;
[for version 1.7.4]&lt;br /&gt;
&lt;br /&gt;
Enter in the console&lt;br /&gt;
&lt;br /&gt;
  mission.runMissionScreen(null,null,null,'shipUniqueRole')&lt;br /&gt;
&lt;br /&gt;
which, using the ShipX convention yields&lt;br /&gt;
&lt;br /&gt;
  mission.runMissionScreen(null,null,null,'ShipX-Trader')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Coming soon to a stable version near you...]&lt;br /&gt;
&lt;br /&gt;
Enter in the console&lt;br /&gt;
&lt;br /&gt;
  mission.runScreen({model:'shipUniqueRole'})&lt;br /&gt;
&lt;br /&gt;
which, using the ShipX convention yields&lt;br /&gt;
&lt;br /&gt;
  mission.runScreen({model:'ShipX-Trader'})&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Viewing_a_Texture_or_Model&amp;diff=16950</id>
		<title>Viewing a Texture or Model</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Viewing_a_Texture_or_Model&amp;diff=16950"/>
		<updated>2009-11-21T05:23:51Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How to view a specific model and / or texture in Oolite. ==&lt;br /&gt;
&lt;br /&gt;
If the ship you want to view is your player ship simply launch the ship and press v to cycle through the external views. &lt;br /&gt;
&lt;br /&gt;
===Install Debug.oxp===&lt;br /&gt;
&lt;br /&gt;
  1. Add Debug.oxp to your Oolite AddOns [http://wiki.alioth.net/index.php/Debug_OXP]&lt;br /&gt;
     -- Extract the archive.&lt;br /&gt;
     -- Move the extracted folder Debug.oxp to $PROGDIR/AddOns/&lt;br /&gt;
  2. Install PyDebugConsole [https://developer.berlios.de/project/showfiles.php?group_id=3577]&lt;br /&gt;
     -- Extract the archive&lt;br /&gt;
     -- Put the directory OODebugConsole wherever you like&lt;br /&gt;
&lt;br /&gt;
===Run Oolite with the DebugConsole=== &lt;br /&gt;
&lt;br /&gt;
  1. Run the DebugConsole [WhereverIPutIt/OODebugConsole/OODebugConsole.exe]&lt;br /&gt;
  2. Start Oolite&lt;br /&gt;
      (If you have modified an oxp hold down the shift key during during the boot&lt;br /&gt;
      to clear the cache)&lt;br /&gt;
  3. Launch into space [Press 1](moving into a clear area helps). &lt;br /&gt;
&lt;br /&gt;
===Spawning the ship you want to view actively in the game=== &lt;br /&gt;
&lt;br /&gt;
====Spawning the ship====&lt;br /&gt;
&lt;br /&gt;
Type in the console&lt;br /&gt;
&lt;br /&gt;
  :spawn ''shipUniqueRole''&lt;br /&gt;
&lt;br /&gt;
where ''shipUniqueRole'' is the parameter to be passed to the :spawn macro. &lt;br /&gt;
&lt;br /&gt;
====Finding the ''shipUniqueRole''====&lt;br /&gt;
&lt;br /&gt;
To find the correct argument for ''shipUniqueRole'' refer to [i.e. open in a text editor]&lt;br /&gt;
&lt;br /&gt;
   config\shipdata.plist &lt;br /&gt;
&lt;br /&gt;
Find the entry for the ship in question in the shipdata.plist. [we'll call it shipX]&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Find the defined roles&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Use one of the defined roles as the argument for :spawn [found between ''&amp;lt;string&amp;gt;&amp;lt;/string&amp;gt;'']&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
         &amp;lt;dict&amp;gt; &lt;br /&gt;
         ... &lt;br /&gt;
           &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
             &amp;lt;string&amp;gt;shipX-trader shipX-escort shipX-hunter&amp;lt;/string&amp;gt; &lt;br /&gt;
         ... &lt;br /&gt;
         &amp;lt;/dict&amp;gt; &lt;br /&gt;
&lt;br /&gt;
yields&lt;br /&gt;
&lt;br /&gt;
       :spawn shipX-trader &lt;br /&gt;
in the console. &lt;br /&gt;
&lt;br /&gt;
====Modifying the shipdata.plist====&lt;br /&gt;
&lt;br /&gt;
If all the defined roles are generic* modify the shipdata.plist from:&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
         &amp;lt;dict&amp;gt; &lt;br /&gt;
         ... &lt;br /&gt;
           &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
             &amp;lt;string&amp;gt;trader escort hunter&amp;lt;/string&amp;gt;&lt;br /&gt;
         ... &lt;br /&gt;
         &amp;lt;/dict&amp;gt; &lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
         &amp;lt;dict&amp;gt; &lt;br /&gt;
         ... &lt;br /&gt;
           &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
             &amp;lt;string&amp;gt;shipX-trader trader escort hunter&amp;lt;/string&amp;gt; &lt;br /&gt;
         ...&lt;br /&gt;
         &amp;lt;/dict&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[* If the defined roles are only generic e.g trader|pirate|hunter|etc then a random ship fulfilling the role will be spawned. Not necessarily the one you wanted.]&lt;br /&gt;
&lt;br /&gt;
[Make sure to use a text editor suitable for programming. One that doesn't change the encoding or add junk to the file. EOL=LF+CR] &lt;br /&gt;
&lt;br /&gt;
====To park the spawned ship====&lt;br /&gt;
&lt;br /&gt;
To park the spawned ship target it then enter in the console&lt;br /&gt;
&lt;br /&gt;
  player.ship.target.setAI(&amp;quot;dumbAI.plist&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
To manipulate sub entities (if the ship has any) use the command:&lt;br /&gt;
&lt;br /&gt;
  player.ship.target.subEntities[0].position = [x, y, z]&lt;br /&gt;
&lt;br /&gt;
===View a ship rotating Mission Screen style===&lt;br /&gt;
 &lt;br /&gt;
These commands work when you are docked in the station.&lt;br /&gt;
&lt;br /&gt;
[for version 1.7.4]&lt;br /&gt;
&lt;br /&gt;
Enter in the console&lt;br /&gt;
&lt;br /&gt;
  mission.runMissionScreen(null,null,null,'shipUniqueRole')&lt;br /&gt;
&lt;br /&gt;
which, using the ShipX convention yields&lt;br /&gt;
&lt;br /&gt;
  mission.runMissionScreen(null,null,null,'ShipX-Trader')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Coming soon to a stable version near you...]&lt;br /&gt;
&lt;br /&gt;
Enter in the console&lt;br /&gt;
&lt;br /&gt;
  mission.runScreen({model:'shipUniqueRole'})&lt;br /&gt;
&lt;br /&gt;
which, using the ShipX convention yields&lt;br /&gt;
&lt;br /&gt;
  mission.runScreen({model:'ShipX-Trader'})&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Viewing_a_Texture_or_Model&amp;diff=16949</id>
		<title>Viewing a Texture or Model</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Viewing_a_Texture_or_Model&amp;diff=16949"/>
		<updated>2009-11-21T05:04:10Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How to view a specific model and / or texture in Oolite. ==&lt;br /&gt;
&lt;br /&gt;
If the ship you want to view is your player ship simply launch the ship and press v to cycle through the external views. &lt;br /&gt;
&lt;br /&gt;
===Install Debug.oxp===&lt;br /&gt;
&lt;br /&gt;
  1. Add Debug.oxp to your Oolite AddOns [http://wiki.alioth.net/index.php/Debug_OXP]&lt;br /&gt;
     -- Extract the archive.&lt;br /&gt;
     -- Move the extracted folder Debug.oxp to $PROGDIR/AddOns/&lt;br /&gt;
  2. Install PyDebugConsole [https://developer.berlios.de/project/showfiles.php?group_id=3577]&lt;br /&gt;
     -- Extract the archive&lt;br /&gt;
     -- Put the directory OODebugConsole wherever you like&lt;br /&gt;
&lt;br /&gt;
===Run Oolite with the DebugConsole=== &lt;br /&gt;
&lt;br /&gt;
  1. Run the DebugConsole [WhereverIPutIt/OODebugConsole/OODebugConsole.exe]&lt;br /&gt;
  2. Start Oolite&lt;br /&gt;
      (If you have modified an oxp hold down the shift key during during the boot&lt;br /&gt;
      to clear the cache)&lt;br /&gt;
  3. Launch into space [Press 1](moving into a clear area helps). &lt;br /&gt;
&lt;br /&gt;
===Spawning the ship you want to view actively in the game=== &lt;br /&gt;
&lt;br /&gt;
====Spawning the ship====&lt;br /&gt;
&lt;br /&gt;
Type in the console&lt;br /&gt;
&lt;br /&gt;
  :spawn ''shipUniqueRole''&lt;br /&gt;
&lt;br /&gt;
where ''shipUniqueRole'' is the parameter to be passed to the :spawn macro. &lt;br /&gt;
&lt;br /&gt;
====Finding the ''shipUniqueRole''====&lt;br /&gt;
&lt;br /&gt;
To find the correct argument for shipUniqueRole refer to [i.e. open in a text editor]&lt;br /&gt;
&lt;br /&gt;
   config\shipdata.plist &lt;br /&gt;
&lt;br /&gt;
Find the entry for the ship in question in the shipdata.plist. [we'll call it shipX]&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Find the defined roles&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Use one of the defined roles as the argument for :spawn [found between ''&amp;lt;string&amp;gt;&amp;lt;/string&amp;gt;'']&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
         &amp;lt;dict&amp;gt; &lt;br /&gt;
         ... &lt;br /&gt;
           &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
             &amp;lt;string&amp;gt;shipX-trader shipX-escort shipX-hunter&amp;lt;/string&amp;gt; &lt;br /&gt;
         ... &lt;br /&gt;
         &amp;lt;/dict&amp;gt; &lt;br /&gt;
&lt;br /&gt;
yields&lt;br /&gt;
&lt;br /&gt;
       :spawn shipX-trader &lt;br /&gt;
in the console. &lt;br /&gt;
&lt;br /&gt;
====Modifying the shipdata.plist====&lt;br /&gt;
&lt;br /&gt;
If all the defined roles are generic* modify the shipdata.plist from:&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
         &amp;lt;dict&amp;gt; &lt;br /&gt;
         ... &lt;br /&gt;
           &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
             &amp;lt;string&amp;gt;trader escort hunter&amp;lt;/string&amp;gt;&lt;br /&gt;
         ... &lt;br /&gt;
         &amp;lt;/dict&amp;gt; &lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
         &amp;lt;dict&amp;gt; &lt;br /&gt;
         ... &lt;br /&gt;
           &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
             &amp;lt;string&amp;gt;shipX-trader trader escort hunter&amp;lt;/string&amp;gt; &lt;br /&gt;
         ...&lt;br /&gt;
         &amp;lt;/dict&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[* If the defined roles are only generic e.g trader|pirate|hunter|etc then a random ship fulfilling the role will be spawned. Not necessarily the one you wanted.]&lt;br /&gt;
&lt;br /&gt;
[Make sure to use a text editor suitable for programming. One that doesn't change the encoding or add junk to the file. EOL=LF+CR] &lt;br /&gt;
&lt;br /&gt;
====To park the spawned ship====&lt;br /&gt;
&lt;br /&gt;
To park the spawned ship target it then enter in the console&lt;br /&gt;
&lt;br /&gt;
  player.ship.target.setAI(&amp;quot;dumbAI.plist&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
To manipulate sub entities (if the ship has any) use the command:&lt;br /&gt;
&lt;br /&gt;
  player.ship.target.subEntities[0].position = [x, y, z]&lt;br /&gt;
&lt;br /&gt;
===View a ship rotating Mission Screen style===&lt;br /&gt;
 &lt;br /&gt;
These commands work when you are docked in the station.&lt;br /&gt;
&lt;br /&gt;
[for version 1.7.4]&lt;br /&gt;
&lt;br /&gt;
Enter in the console&lt;br /&gt;
&lt;br /&gt;
  mission.runMissionScreen(null,null,null,'shipUniqueRole')&lt;br /&gt;
&lt;br /&gt;
which, using the ShipX convention yields&lt;br /&gt;
&lt;br /&gt;
  mission.runMissionScreen(null,null,null,'ShipX-Trader')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Coming soon to a stable version near you...]&lt;br /&gt;
&lt;br /&gt;
Enter in the console&lt;br /&gt;
&lt;br /&gt;
  mission.runScreen({model:'shipUniqueRole'})&lt;br /&gt;
&lt;br /&gt;
which, using the ShipX convention yields&lt;br /&gt;
&lt;br /&gt;
  mission.runScreen({model:'ShipX-Trader'})&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Modifying_a_Texture&amp;diff=16946</id>
		<title>Modifying a Texture</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Modifying_a_Texture&amp;diff=16946"/>
		<updated>2009-11-19T00:04:38Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Modifying a Texture=&lt;br /&gt;
Textures or skins are 2D graphics that are wrapped around 3D objects by the game.&lt;br /&gt;
&lt;br /&gt;
==Quick Guide==&lt;br /&gt;
* Find the correct texture .png found in the ''/Textures'' folder&lt;br /&gt;
* Back up the file you want to change&lt;br /&gt;
* Open the texture in a 2D graphic editing program&lt;br /&gt;
* Resample the image to 4096x4096&lt;br /&gt;
* You can hopefully see the elements that are mapped to particular features on the model&lt;br /&gt;
* Customize the existing image or ...&lt;br /&gt;
* Create a 'coloring book' outline template and replace the elements from scratch.&lt;br /&gt;
* Resample the image to 1024x1024.&lt;br /&gt;
* Save it as a .png&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Detailed Guide==&lt;br /&gt;
===Location of files===&lt;br /&gt;
The textures are stored as .png files in the ''/Textures'' folder. Which ''/Textures'' folder depends on whether the object is part of the standard game or part of an add-on.&lt;br /&gt;
&lt;br /&gt;
  $PROGDIR/&lt;br /&gt;
     Oolite.app/&lt;br /&gt;
         Resources/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for standard ships live here.''&lt;br /&gt;
     Addons/&lt;br /&gt;
         ShipX.oxp/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for ShipX live here.''&lt;br /&gt;
         ShipY.oxp/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for ShipY live here.''&lt;br /&gt;
&lt;br /&gt;
===Using shipdata.plist to see which textures are loaded===&lt;br /&gt;
Ship textures usually carry an obvious name ''e.g.'' ShipX_body.png.&lt;br /&gt;
But not always. To confirm which textures are loaded for ShipX open the file shipdata.plist in a text editor.&lt;br /&gt;
  $PROGDIR/AddOns/ShipX.oxp/Resources?/shipdata.plist&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;ShipX&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;dict&amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
     &amp;lt; &amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
    &amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==I need a UVmap==&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Modifying_a_Texture&amp;diff=16945</id>
		<title>Modifying a Texture</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Modifying_a_Texture&amp;diff=16945"/>
		<updated>2009-11-19T00:03:18Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Modifying a Texture=&lt;br /&gt;
Textures or skins are 2D graphics that are wrapped around 3D objects by the game.&lt;br /&gt;
&lt;br /&gt;
==Quick Guide==&lt;br /&gt;
* Find the correct texture .png found in the ''/Textures'' folder&lt;br /&gt;
* Back up the file you want to change&lt;br /&gt;
* Open the texture in a 2D graphic editing program&lt;br /&gt;
* Resample the image to 4096x4096&lt;br /&gt;
* You can hopefully see the elements that are mapped to particular features on the model&lt;br /&gt;
* Customize the existing image or ...&lt;br /&gt;
* Create a 'coloring book' outline template and replace the elements from scratch.&lt;br /&gt;
* Resample the image to 1024x1024.&lt;br /&gt;
* Save it as a .png&lt;br /&gt;
&lt;br /&gt;
==Detailed Guide==&lt;br /&gt;
===Location of files===&lt;br /&gt;
The textures are stored as .png files in the ''/Textures'' folder. Which ''/Textures'' folder depends on whether the object is part of the standard game or part of an add-on.&lt;br /&gt;
&lt;br /&gt;
  $PROGDIR/&lt;br /&gt;
     Oolite.app/&lt;br /&gt;
         Resources/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for standard ships live here.''&lt;br /&gt;
     Addons/&lt;br /&gt;
         ShipX.oxp/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for ShipX live here.''&lt;br /&gt;
         ShipY.oxp/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for ShipY live here.''&lt;br /&gt;
&lt;br /&gt;
===Using shipdata.plist to see which textures are loaded===&lt;br /&gt;
Ship textures usually carry an obvious name ''e.g.'' ShipX_body.png.&lt;br /&gt;
But not always. To confirm which textures are loaded for ShipX open the file shipdata.plist in a text editor.&lt;br /&gt;
  $PROGDIR/AddOns/ShipX.oxp/Resources?/shipdata.plist&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;ShipX&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;dict&amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
     &amp;lt; &amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
    &amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==I need a UVmap==&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Modifying_a_Texture&amp;diff=16944</id>
		<title>Modifying a Texture</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Modifying_a_Texture&amp;diff=16944"/>
		<updated>2009-11-19T00:00:35Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Modifying a Texture=&lt;br /&gt;
Textures or skins are 2D graphics that are wrapped around 3D objects by the game.&lt;br /&gt;
&lt;br /&gt;
==Quick Guide==&lt;br /&gt;
* Find the correct texture .png found in the ''/Textures'' folder&lt;br /&gt;
* Back up the file you want to change&lt;br /&gt;
* Open the texture in a 2D graphic editing program&lt;br /&gt;
* Resample the image to 4096x4096&lt;br /&gt;
* You can hopefully see the elements that are mapped to particular features on the model&lt;br /&gt;
* Customize the existing image or ...&lt;br /&gt;
* Create a 'coloring book' outline template and replace the elements from scratch.&lt;br /&gt;
* Resample the image to 1024x1024.&lt;br /&gt;
* Save it as a .png&lt;br /&gt;
&lt;br /&gt;
==Detailed Guide==&lt;br /&gt;
===Location of files===&lt;br /&gt;
The textures are stored as .png files in the ''/Textures'' folder. Which ''/Textures'' folder depends on whether the object is part of the standard game or part of an add-on.&lt;br /&gt;
&lt;br /&gt;
  $PROGDIR/&lt;br /&gt;
     Oolite.app/&lt;br /&gt;
         Resources/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for standard ships live here.''&lt;br /&gt;
     Addons/&lt;br /&gt;
         ShipX.oxp/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for ShipX live here.''&lt;br /&gt;
         ShipY.oxp/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for ShipY live here.''&lt;br /&gt;
&lt;br /&gt;
Ship textures usually carry an obvious name ''e.g.'' ShipX_body.png.&lt;br /&gt;
But not always. To confirm which textures are loaded for ShipX open the file shipdata.plist in a text editor.&lt;br /&gt;
  $PROGDIR/AddOns/ShipX.oxp/Resources?/shipdata.plist&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;ShipX&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;dict&amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
     &amp;lt; &amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
    &amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==I need a UVmap==&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Modifying_a_Texture&amp;diff=16943</id>
		<title>Modifying a Texture</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Modifying_a_Texture&amp;diff=16943"/>
		<updated>2009-11-18T23:59:54Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Modifying a Texture=&lt;br /&gt;
Textures or skins are 2D graphics that are wrapped around 3D objects by the game.&lt;br /&gt;
&lt;br /&gt;
==Quick Guide==&lt;br /&gt;
* Find the correct texture .png found in the ''/Textures'' folder&lt;br /&gt;
* Back up the file you want to change&lt;br /&gt;
* Open the texture in a 2D graphic editing program&lt;br /&gt;
* Resample the image to 4096x4096&lt;br /&gt;
* You can hopefully see the elements that are mapped to particular features on the model&lt;br /&gt;
* Customize the existing image or ...&lt;br /&gt;
* Create a 'coloring book' outline template and replace the elements from scratch.&lt;br /&gt;
* Resample the image to 1024x1024.&lt;br /&gt;
* Save it as a .png&lt;br /&gt;
&lt;br /&gt;
==Detailed Guide==&lt;br /&gt;
===Location of files===&lt;br /&gt;
The textures are stored as .png files in the ''/Textures'' folder. Which ''/Textures'' folder depends on whether the object is part of the standard game or part of an add-on.&lt;br /&gt;
&lt;br /&gt;
  $PROGDIR/&lt;br /&gt;
     Oolite.app/&lt;br /&gt;
         Resources/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for standard ships live here.''&lt;br /&gt;
     Addons/&lt;br /&gt;
         ShipX.oxp/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for ShipX live here.''&lt;br /&gt;
         ShipY.oxp/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for ShipY live here.''&lt;br /&gt;
&lt;br /&gt;
Ship textures usually carry an obvious name ''e.g.'' ShipX_body.png.&lt;br /&gt;
But not always. To confirm which textures are loaded for ShipX open the file shipdata.plist in a text editor.&lt;br /&gt;
  $PROGDIR/AddOns/ShipX/Resources?/shipdata.plist&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;ShipX&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;dict&amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
     &amp;lt; &amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
    &amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==I need a UVmap==&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Modifying_a_Texture&amp;diff=16942</id>
		<title>Modifying a Texture</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Modifying_a_Texture&amp;diff=16942"/>
		<updated>2009-11-18T23:58:37Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Modifying a Texture=&lt;br /&gt;
Textures or skins are 2D graphics that are wrapped around 3D objects by the game.&lt;br /&gt;
&lt;br /&gt;
==Quick Guide==&lt;br /&gt;
* Find the correct texture .png found in the ''/Textures'' folder&lt;br /&gt;
* Back up the file you want to change&lt;br /&gt;
* Open the texture in a 2D graphic editing program&lt;br /&gt;
* Resample the image to 4096x4096&lt;br /&gt;
* You can hopefully see the elements that are mapped to particular features on the model&lt;br /&gt;
* Customize the existing image or ...&lt;br /&gt;
* Create a 'coloring book' outline template and replace the elements from scratch.&lt;br /&gt;
* Resample the image to 1024x1024.&lt;br /&gt;
* Save it as a .png&lt;br /&gt;
&lt;br /&gt;
==Detailed Guide==&lt;br /&gt;
===Location of files===&lt;br /&gt;
The textures are stored as .png files in the ''/Textures'' folder. Which ''/Textures'' folder depends on whether the object is part of the standard game or part of an add-on.&lt;br /&gt;
&lt;br /&gt;
  $PROGDIR/&lt;br /&gt;
     Oolite.app/&lt;br /&gt;
         Resources/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for standard ships live here.''&lt;br /&gt;
     Addons/&lt;br /&gt;
         ShipX/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for ShipX live here.''&lt;br /&gt;
         ShipY/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for ShipY live here.''&lt;br /&gt;
&lt;br /&gt;
Ship textures usually carry an obvious name ''e.g.'' ShipX_body.png.&lt;br /&gt;
But not always. To confirm which textures are loaded for ShipX open the file shipdata.plist in a text editor.&lt;br /&gt;
  $PROGDIR/AddOns/ShipX/Resources?/shipdata.plist&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;ShipX&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;dict&amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
     &amp;lt; &amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
    &amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==I need a UVmap==&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Modifying_a_Model&amp;diff=16941</id>
		<title>Modifying a Model</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Modifying_a_Model&amp;diff=16941"/>
		<updated>2009-11-18T23:42:04Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The underlying 3D models are contained in .dat files.&lt;br /&gt;
&lt;br /&gt;
  $PROGDIR/&lt;br /&gt;
     AddOns/&lt;br /&gt;
        ShipX/&lt;br /&gt;
        ShipY/&lt;br /&gt;
&lt;br /&gt;
To modify a .dat the file must first be converted to a Wavefront .obj file.&lt;br /&gt;
Conversion utilities are available here [http://svn.berlios.de/svnroot/repos/oolite-linux/trunk/tools/meshConverters/], although they are listed under Linux they are cross-platform and require the installation of Python[http://Python.org].&lt;br /&gt;
&lt;br /&gt;
[Oolite forum thread about the conversion tools [http://aegidian.org/bb/viewtopic.php?t=842]]&lt;br /&gt;
&lt;br /&gt;
Run dat2obj or dat2objTex on the .dat.&lt;br /&gt;
&lt;br /&gt;
The resulting file can be imported into any 3D program that supports .obj.&lt;br /&gt;
&lt;br /&gt;
[The free, open source program Wings3D [http://www.wings3d.com/] is the de facto standard, Blender[http://www.blender.org/] also works.]&lt;br /&gt;
&lt;br /&gt;
When finished export the model as an .obj and run obj2dat.&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Modifying_a_Model&amp;diff=16940</id>
		<title>Modifying a Model</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Modifying_a_Model&amp;diff=16940"/>
		<updated>2009-11-18T23:31:03Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: Created page with 'The underlying 3D models are contained in .dat files.    $PROGDIR/      AddOns/         ShipX/         ShipY/  To modify a .dat the file must first be converted to .obj. Conversi…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The underlying 3D models are contained in .dat files.&lt;br /&gt;
&lt;br /&gt;
  $PROGDIR/&lt;br /&gt;
     AddOns/&lt;br /&gt;
        ShipX/&lt;br /&gt;
        ShipY/&lt;br /&gt;
&lt;br /&gt;
To modify a .dat the file must first be converted to .obj.&lt;br /&gt;
Conversion utilities are available here and require the installation of Python [http://Python.org]&lt;br /&gt;
&lt;br /&gt;
Run dat2obj or dat2objTex on the .dat.&lt;br /&gt;
&lt;br /&gt;
The resulting file can be imported into any 3D program that supports .obj.&lt;br /&gt;
&lt;br /&gt;
[The free, open source program Wings3D [http://www.wings3d.com/] is the de facto standard]&lt;br /&gt;
&lt;br /&gt;
When finished export the model as an .obj and run obj2dat.&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Modifying_Oolite_Informal_FAQ&amp;diff=16939</id>
		<title>Modifying Oolite Informal FAQ</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Modifying_Oolite_Informal_FAQ&amp;diff=16939"/>
		<updated>2009-11-18T23:13:31Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: /* Visual */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==I want to modify Oolite informal FAQ==&lt;br /&gt;
&lt;br /&gt;
===Audio===&lt;br /&gt;
====I want to change the default sounds====&lt;br /&gt;
* [[Modifying the Audio]]&lt;br /&gt;
&lt;br /&gt;
===Visual===&lt;br /&gt;
&lt;br /&gt;
====I want to change the way a ship or object looks====&lt;br /&gt;
&lt;br /&gt;
There are two fundamental changes that can be made: changing the skin or changing the 3D model.&lt;br /&gt;
&lt;br /&gt;
* Changing the 3D model -- [[Modifying a Model]]&lt;br /&gt;
&lt;br /&gt;
* Changing the skin/texture -- [[Modifying a Texture]]&lt;br /&gt;
&lt;br /&gt;
===Gameplay===&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Modifying_the_Audio&amp;diff=16938</id>
		<title>Modifying the Audio</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Modifying_the_Audio&amp;diff=16938"/>
		<updated>2009-11-18T23:11:05Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: Created page with 'The audio for Oolite is contained in  two folders:    $PROGDIR/      Oolite.app/         Resources/            Music/   &amp;lt;-- Music lives here            Sounds/   &amp;lt;-- Sound effect…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The audio for Oolite is contained in  two folders:&lt;br /&gt;
&lt;br /&gt;
  $PROGDIR/&lt;br /&gt;
     Oolite.app/&lt;br /&gt;
        Resources/&lt;br /&gt;
           Music/   &amp;lt;-- Music lives here&lt;br /&gt;
           Sounds/   &amp;lt;-- Sound effects live here&lt;br /&gt;
&lt;br /&gt;
The sound files are 44 kHz, ~100-120 Kbps, Oggs.&lt;br /&gt;
[.ogg is an open source compression and container format. [http://www.xiph.org/]]&lt;br /&gt;
&lt;br /&gt;
Audacity is the most popular free and open source audio editor. [http://audacity.sourceforge.net/]&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Modifying_Oolite_Informal_FAQ&amp;diff=16937</id>
		<title>Modifying Oolite Informal FAQ</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Modifying_Oolite_Informal_FAQ&amp;diff=16937"/>
		<updated>2009-11-18T22:57:22Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: /* Audio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==I want to modify Oolite informal FAQ==&lt;br /&gt;
&lt;br /&gt;
===Audio===&lt;br /&gt;
====I want to change the default sounds====&lt;br /&gt;
* [[Modifying the Audio]]&lt;br /&gt;
&lt;br /&gt;
===Visual===&lt;br /&gt;
====I want to change the way my ship looks====&lt;br /&gt;
====I want to change the way a ship or object looks====&lt;br /&gt;
&lt;br /&gt;
There are two fundamental changes that can be made: changing the skin or changing the 3D model.&lt;br /&gt;
&lt;br /&gt;
* Changing the 3D model&lt;br /&gt;
&lt;br /&gt;
* Changing the skin/texture -- [[Modifying a Texture]]&lt;br /&gt;
&lt;br /&gt;
===Gameplay===&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Modifying_a_Texture&amp;diff=16935</id>
		<title>Modifying a Texture</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Modifying_a_Texture&amp;diff=16935"/>
		<updated>2009-11-18T05:08:27Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Textures or skins are 2D graphics that are wrapped around 3D objects by the game.&lt;br /&gt;
&lt;br /&gt;
==Quick Guide==&lt;br /&gt;
* Find the correct texture .png found in the ''/Textures'' folder&lt;br /&gt;
* Back up the file you want to change&lt;br /&gt;
* Open the texture in a 2D graphic editing program&lt;br /&gt;
* Resample the image to 4096x4096&lt;br /&gt;
* You can hopefully see the elements that are mapped to particular features on the model&lt;br /&gt;
* Customize the existing image or ...&lt;br /&gt;
* Create a 'coloring book' outline template and replace the elements from scratch.&lt;br /&gt;
* Resample the image to 1024x1024.&lt;br /&gt;
* Save it as a .png&lt;br /&gt;
&lt;br /&gt;
==Detailed Guide==&lt;br /&gt;
===Location of files===&lt;br /&gt;
The textures are stored as .png files in the ''/Textures'' folder. Which ''/Textures'' folder depends on whether the object is part of the standard game or part of an add-on.&lt;br /&gt;
&lt;br /&gt;
  $PROGDIR/&lt;br /&gt;
     Oolite.app/&lt;br /&gt;
         Resources/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for standard ships live here.''&lt;br /&gt;
     Addons/&lt;br /&gt;
         ShipX/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for ShipX live here.''&lt;br /&gt;
         ShipY/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for ShipY live here.''&lt;br /&gt;
&lt;br /&gt;
Ship textures usually carry an obvious name ''e.g.'' ShipX_body.png.&lt;br /&gt;
But not always. To confirm which textures are loaded for ShipX open the file shipdata.plist in a text editor.&lt;br /&gt;
  $PROGDIR/AddOns/ShipX/Resources?/shipdata.plist&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;ShipX&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;dict&amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
     &amp;lt; &amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
    &amp;lt;/dict&amp;gt;&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Modifying_a_Texture&amp;diff=16934</id>
		<title>Modifying a Texture</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Modifying_a_Texture&amp;diff=16934"/>
		<updated>2009-11-18T04:57:59Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: /* Location of files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Textures or skins are 2D graphics that are wrapped around 3D objects by the game.&lt;br /&gt;
&lt;br /&gt;
=Quick Guide=&lt;br /&gt;
* Find the correct texture .png found in the ''/Textures'' folder&lt;br /&gt;
* Back up the file you want to change&lt;br /&gt;
* Open the texture in a 2D graphic editing program&lt;br /&gt;
* Resample the image to 4096x4096&lt;br /&gt;
* You can hopefully see the elements that are mapped to particular features on the model&lt;br /&gt;
* Customize the existing image or ...&lt;br /&gt;
* Create a 'coloring book' outline template and replace the elements from scratch.&lt;br /&gt;
* Resample the image to 1024x1024.&lt;br /&gt;
* Save it as a .png&lt;br /&gt;
&lt;br /&gt;
=Detailed Guide=&lt;br /&gt;
==Location of files==&lt;br /&gt;
The textures are stored as .png files in the ''/Textures'' folder. Which ''/Textures'' folder depends on whether the object is part of the standard game or part of an add-on.&lt;br /&gt;
&lt;br /&gt;
  $PROGDIR/&lt;br /&gt;
     Oolite.app/&lt;br /&gt;
         Resources/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for standard ships live here.''&lt;br /&gt;
     Addons/&lt;br /&gt;
         ShipX/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for ShipX live here.''&lt;br /&gt;
         ShipY/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for ShipY live here.''&lt;br /&gt;
&lt;br /&gt;
Ship textures usually carry an obvious name ''e.g.'' ShipX_body.png.&lt;br /&gt;
But not always. To confirm which textures are loaded for ShipX open the file shipdata.plist in a text editor.&lt;br /&gt;
  $PROGDIR/AddOns/ShipX/Resources?/shipdata.plist&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;ShipX&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;dict&amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
     &amp;lt; &amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
    &amp;lt;/dict&amp;gt;&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Modifying_a_Texture&amp;diff=16933</id>
		<title>Modifying a Texture</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Modifying_a_Texture&amp;diff=16933"/>
		<updated>2009-11-18T04:56:41Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: /* Quick Guide */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Textures or skins are 2D graphics that are wrapped around 3D objects by the game.&lt;br /&gt;
&lt;br /&gt;
=Quick Guide=&lt;br /&gt;
* Find the correct texture .png found in the ''/Textures'' folder&lt;br /&gt;
* Back up the file you want to change&lt;br /&gt;
* Open the texture in a 2D graphic editing program&lt;br /&gt;
* Resample the image to 4096x4096&lt;br /&gt;
* You can hopefully see the elements that are mapped to particular features on the model&lt;br /&gt;
* Customize the existing image or ...&lt;br /&gt;
* Create a 'coloring book' outline template and replace the elements from scratch.&lt;br /&gt;
* Resample the image to 1024x1024.&lt;br /&gt;
* Save it as a .png&lt;br /&gt;
&lt;br /&gt;
=Detailed Guide=&lt;br /&gt;
==Location of files==&lt;br /&gt;
The textures are stored as .png files in the ''/Textures'' folder. Which ''/Textures'' folder depends on whether the object is part of the standard game or part of an add-on.&lt;br /&gt;
&lt;br /&gt;
  $PROGDIR/&lt;br /&gt;
     Oolite.app/&lt;br /&gt;
         Resources/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for standard ships live here.''&lt;br /&gt;
     Addons/&lt;br /&gt;
         ShipX/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for ShipX live here.''&lt;br /&gt;
         ShipY/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for ShipY live here.''&lt;br /&gt;
&lt;br /&gt;
Ship textures usually carry an obvious name ''e.g.'' ShipX_body.png.&lt;br /&gt;
But not always. To confirm which textures are loaded for ShipX open the file shipdata.plist in a text editor.&lt;br /&gt;
  $PROGDIR/AddOns/ShipX/shipdata.plist&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;ShipX&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;dict&amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
     &amp;lt; &amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
    &amp;lt;/dict&amp;gt;&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Modifying_a_Texture&amp;diff=16932</id>
		<title>Modifying a Texture</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Modifying_a_Texture&amp;diff=16932"/>
		<updated>2009-11-18T04:55:56Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Textures or skins are 2D graphics that are wrapped around 3D objects by the game.&lt;br /&gt;
&lt;br /&gt;
=Quick Guide=&lt;br /&gt;
* Find the correct texture .png found in the ''/Textures'' folder&lt;br /&gt;
* Back up the file you want to change&lt;br /&gt;
* Open the texture in a 2D graphic editing program&lt;br /&gt;
* Resample the image to 4096x4096&lt;br /&gt;
* You can hopefully see the elements that are mapped to particular features on the model&lt;br /&gt;
* Customize the existing image or ...&lt;br /&gt;
* Create a 'coloring book' outline and replace the elements from scratch.&lt;br /&gt;
* Resample the image to 1024x1024.&lt;br /&gt;
* Save it as a .png&lt;br /&gt;
&lt;br /&gt;
=Detailed Guide=&lt;br /&gt;
==Location of files==&lt;br /&gt;
The textures are stored as .png files in the ''/Textures'' folder. Which ''/Textures'' folder depends on whether the object is part of the standard game or part of an add-on.&lt;br /&gt;
&lt;br /&gt;
  $PROGDIR/&lt;br /&gt;
     Oolite.app/&lt;br /&gt;
         Resources/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for standard ships live here.''&lt;br /&gt;
     Addons/&lt;br /&gt;
         ShipX/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for ShipX live here.''&lt;br /&gt;
         ShipY/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for ShipY live here.''&lt;br /&gt;
&lt;br /&gt;
Ship textures usually carry an obvious name ''e.g.'' ShipX_body.png.&lt;br /&gt;
But not always. To confirm which textures are loaded for ShipX open the file shipdata.plist in a text editor.&lt;br /&gt;
  $PROGDIR/AddOns/ShipX/shipdata.plist&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;ShipX&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;dict&amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
     &amp;lt; &amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
    &amp;lt;/dict&amp;gt;&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Modifying_a_Texture&amp;diff=16931</id>
		<title>Modifying a Texture</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Modifying_a_Texture&amp;diff=16931"/>
		<updated>2009-11-18T04:41:35Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: /* Location of files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Textures or skins are 2D graphics that are wrapped around 3D objects by the game.&lt;br /&gt;
&lt;br /&gt;
==Location of files==&lt;br /&gt;
The textures are stored as .png files in the ''/Textures'' folder. Which ''/Textures'' folder depends on whether the object is part of the standard game or part of an add-on.&lt;br /&gt;
&lt;br /&gt;
  $PROGDIR/&lt;br /&gt;
     Oolite.app/&lt;br /&gt;
         Resources/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for standard ships live here.''&lt;br /&gt;
     Addons/&lt;br /&gt;
         ShipX/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for ShipX live here.''&lt;br /&gt;
         ShipY/&lt;br /&gt;
             Textures/  ''&amp;lt;-- Textures for ShipY live here.''&lt;br /&gt;
&lt;br /&gt;
Ship textures usually carry an obvious name ''e.g.'' ShipX_body.png.&lt;br /&gt;
But not always. To confirm which textures are loaded for ShipX open the file shipdata.plist in a text editor.&lt;br /&gt;
  $PROGDIR/AddOns/ShipX/shipdata.plist&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;ShipX&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;dict&amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
     &amp;lt; &amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
    &amp;lt;/dict&amp;gt;&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Modifying_a_Texture&amp;diff=16930</id>
		<title>Modifying a Texture</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Modifying_a_Texture&amp;diff=16930"/>
		<updated>2009-11-18T04:38:16Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: /* Modifying a Texture */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Textures or skins are 2D graphics that are wrapped around 3D objects by the game.&lt;br /&gt;
&lt;br /&gt;
==Location of files==&lt;br /&gt;
The textures are stored as .png files in the ''/Textures'' folder. Which ''/Textures'' folder depends on whether the object is part of the standard game or part of an add-on.&lt;br /&gt;
&lt;br /&gt;
  $PROGDIR/&lt;br /&gt;
    Oolite.app/&lt;br /&gt;
      Resources/&lt;br /&gt;
        Textures/  ''&amp;lt;-- Textures for standard ships live here.''&lt;br /&gt;
    Addons/&lt;br /&gt;
      ShipX/&lt;br /&gt;
        Textures/  ''&amp;lt;-- Textures for ShipX live here.''&lt;br /&gt;
      ShipY/&lt;br /&gt;
        Textures/  ''&amp;lt;-- Textures for ShipY live here.''&lt;br /&gt;
&lt;br /&gt;
Ship textures usually carry an obvious name ''e.g.'' ShipX_body.png.&lt;br /&gt;
But not always. To confirm which textures are loaded for ShipX open the file shipdata.plist in a text editor.&lt;br /&gt;
  $PROGDIR/AddOns/ShipX/shipdata.plist&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;ShipX&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;dict&amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
     &amp;lt; &amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
    &amp;lt;/dict&amp;gt;&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Modifying_a_Texture&amp;diff=16929</id>
		<title>Modifying a Texture</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Modifying_a_Texture&amp;diff=16929"/>
		<updated>2009-11-18T04:23:40Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: Created page with '=Modifying a Texture=  Textures or skins are 2D graphics that are wrapped around 3D objects by the game.  ==Location== The textures are stored as .png files in the ''/Textures'' …'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Modifying a Texture=&lt;br /&gt;
&lt;br /&gt;
Textures or skins are 2D graphics that are wrapped around 3D objects by the game.&lt;br /&gt;
&lt;br /&gt;
==Location==&lt;br /&gt;
The textures are stored as .png files in the ''/Textures'' folder. Which ''/Textures'' folder depends on whether the object is part of the standard game or part of an add-on.&lt;br /&gt;
&lt;br /&gt;
  $PROGDIR/&lt;br /&gt;
    Oolite.app/&lt;br /&gt;
      Resources/&lt;br /&gt;
        Textures/  ''&amp;lt;-- Textures for standard ships live here.''&lt;br /&gt;
    Addons/&lt;br /&gt;
      ShipX/&lt;br /&gt;
        Textures/  ''&amp;lt;-- Textures for ShipX live here.''&lt;br /&gt;
      ShipY/&lt;br /&gt;
        Textures/  ''&amp;lt;-- Textures for ShipY live here.''&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Modifying_Oolite_Informal_FAQ&amp;diff=16928</id>
		<title>Modifying Oolite Informal FAQ</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Modifying_Oolite_Informal_FAQ&amp;diff=16928"/>
		<updated>2009-11-18T04:06:55Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: /* I want to change the way a ship or object looks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==I want to modify Oolite informal FAQ==&lt;br /&gt;
&lt;br /&gt;
===Audio===&lt;br /&gt;
====I want to change the default sounds====&lt;br /&gt;
&lt;br /&gt;
===Visual===&lt;br /&gt;
====I want to change the way my ship looks====&lt;br /&gt;
====I want to change the way a ship or object looks====&lt;br /&gt;
&lt;br /&gt;
There are two fundamental changes that can be made: changing the skin or changing the 3D model.&lt;br /&gt;
&lt;br /&gt;
* Changing the 3D model&lt;br /&gt;
&lt;br /&gt;
* Changing the skin/texture -- [[Modifying a Texture]]&lt;br /&gt;
&lt;br /&gt;
===Gameplay===&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Modifying_Oolite_Informal_FAQ&amp;diff=16927</id>
		<title>Modifying Oolite Informal FAQ</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Modifying_Oolite_Informal_FAQ&amp;diff=16927"/>
		<updated>2009-11-18T03:56:48Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: Created page with '==I want to modify Oolite informal FAQ==  ===Audio=== ====I want to change the default sounds====  ===Visual=== ====I want to change the way my ship looks==== ====I want to chang…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==I want to modify Oolite informal FAQ==&lt;br /&gt;
&lt;br /&gt;
===Audio===&lt;br /&gt;
====I want to change the default sounds====&lt;br /&gt;
&lt;br /&gt;
===Visual===&lt;br /&gt;
====I want to change the way my ship looks====&lt;br /&gt;
====I want to change the way a ship or object looks====&lt;br /&gt;
&lt;br /&gt;
===Gameplay===&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=OXP_howto&amp;diff=16926</id>
		<title>OXP howto</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=OXP_howto&amp;diff=16926"/>
		<updated>2009-11-18T03:45:52Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: /* Textures */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:oolite-oxp-icon.png|100px|right|OXP icon]]&lt;br /&gt;
An '''Oolite Expansion Pack''' can cause many big changes or additions to Oolite's gameplay, or it may represent just a small, subtle alteration. By appearances, there is no way to tell what is inside, as it's merely a folder with the added extention '''.oxp'''. Inside, it will at least contain a folder named ''Config'', and possibly other folders such as ''AIs'', ''Models'', ''Textures'', ''Sounds'', etc.  It is down to the goal of the OXP, which ways to combine elements to the OXP's contents.&lt;br /&gt;
&lt;br /&gt;
=== AIs ===&lt;br /&gt;
&lt;br /&gt;
The folder named AIs contains any AI.plist additions the OXP might use. &lt;br /&gt;
&lt;br /&gt;
* [[OXP howto AI|Making Oolite AI]]&lt;br /&gt;
&lt;br /&gt;
=== Config===&lt;br /&gt;
&lt;br /&gt;
This folder contains [[Property lists]] such as:&lt;br /&gt;
&lt;br /&gt;
* ''[[shipdata.plist]]'' that introduces any new entity (ships, stations, objects etc.) to Oolite.&lt;br /&gt;
* ''[[shipdata-overrides.plist]]'' that selectively can replace shipentries in other shipdata.plists&lt;br /&gt;
* ''[[shipyard.plist]]'' that introduces new ships available for player purchase.&lt;br /&gt;
* ''[[shipyard-overrides.plist]]'' that selectively can replace shipentries in other shipyard.plists&lt;br /&gt;
* ''[[script.plist]]'' to handle conditional ''script actions''. Note that [[script.js]] will be loaded in preference to script.plist if both exist. ([[script.oos]] was briefly introduced during 1.70 development but is now depracated in favour of JS.)&lt;br /&gt;
* ''[[planetinfo.plist]]'' that plots system specific changes from the default. May also contain ''script actions''.&lt;br /&gt;
* ''[[commodities.plist]]'' that contains information for each commodity in a market.&lt;br /&gt;
* ''[[misc plists|demoships.plist]]'' that selects demoships to show on startup.&lt;br /&gt;
* ''[[misc plists|descriptions.plist]]'' that adds vocabulary to Oolite texts.&lt;br /&gt;
* ''[[hud.plist]]'' that allows for changes or a radically new ''Head-Up Display''.&lt;br /&gt;
* ''[[characters.plist]]'' that adds non-player characters to Oolite.&lt;br /&gt;
* ''[[equipment.plist]]'' lists upgrades available from the Shipyard.&lt;br /&gt;
* ''[[misc plists|pirate-victim-roles.plist]]'' that defines which roles should act as traders.&lt;br /&gt;
* ''[[missiontext.plist]]'', ''[[speech_pronunciation_guide.plist]]'' are some of the other custom methods.&lt;br /&gt;
&lt;br /&gt;
All plist files except for those introducing new AI, belong in Config.&lt;br /&gt;
&lt;br /&gt;
In its simplest form, an OXP could contain only a Config with an altering ''script.plist'' or ''planetinfo.plist''.  An OXP that adds a new ship needs a ''shipdata.plist'' entry, and unless it is based entirely on existing Oolite data, would include a model and texture. &lt;br /&gt;
&lt;br /&gt;
* [[OXP howto plist|Making Oolite plists]]&lt;br /&gt;
&lt;br /&gt;
=== Models===&lt;br /&gt;
&lt;br /&gt;
Oolite models need to be in the '''.dat''' format. There are utilities available that convert models made in Wings 3D (.obj) and Meshwork (.mesh) into this. A .dat file can be opened in a plain text editor to view the object's assigned texture names and see that they correspond with the actual file names in the Textures folder. The .dat file must be named exactly as it is referenced in the shipdata ''model'' entry.&lt;br /&gt;
&lt;br /&gt;
* [[OXP howto model|Making Oolite models]]&lt;br /&gt;
&lt;br /&gt;
=== Textures===&lt;br /&gt;
&lt;br /&gt;
Oolite's textures are in the '''.png''' format, usually at a standard 1024x1024 size, and must be named exactly as they are named in the .dat file. &lt;br /&gt;
&lt;br /&gt;
* [[OXP howto texture|Making Oolite textures]]&lt;br /&gt;
&lt;br /&gt;
Viewing a specific texture and / or model in Oolite.&lt;br /&gt;
&amp;quot;I made one. How do I proof it?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* [[Viewing a Texture or Model]]&lt;br /&gt;
&lt;br /&gt;
=== Requires ===&lt;br /&gt;
&lt;br /&gt;
Every oxp should contain a [[Property lists]] with the name ''requires.plist'' that is placed at the main level of the oxp folder. It contains just a dictionary with two entries: ''version'' and ''max_version''. ''version'' is the lowest Oolite version the code can run on. This ensures that older Oolite versions don't behave bad or crash because they load an oxp that does contain unknown stuff. The max_version is only needed when you want an oxp to not run with newer Oolite  versions. Very useful for adding in test versions of an oxp to ensure this test version is not used forever.&lt;br /&gt;
&lt;br /&gt;
=== A preview of things to come ===&lt;br /&gt;
&lt;br /&gt;
The scripting environment is being reworked to use JavaScript as the core scripting language. See [[Scripting Oolite with JavaScript]] for more information.&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
*[http://oolite.aegidian.org/cyoship/ Oolite Tutorial-Meshwork Shipbuilding]&lt;br /&gt;
*[http://oolite.aegidian.org/cyoship2/ Oolite Tutorial-Wings 3D Shipbuilding]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=OXP_howto&amp;diff=16925</id>
		<title>OXP howto</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=OXP_howto&amp;diff=16925"/>
		<updated>2009-11-18T03:35:09Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: /* Textures */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:oolite-oxp-icon.png|100px|right|OXP icon]]&lt;br /&gt;
An '''Oolite Expansion Pack''' can cause many big changes or additions to Oolite's gameplay, or it may represent just a small, subtle alteration. By appearances, there is no way to tell what is inside, as it's merely a folder with the added extention '''.oxp'''. Inside, it will at least contain a folder named ''Config'', and possibly other folders such as ''AIs'', ''Models'', ''Textures'', ''Sounds'', etc.  It is down to the goal of the OXP, which ways to combine elements to the OXP's contents.&lt;br /&gt;
&lt;br /&gt;
=== AIs ===&lt;br /&gt;
&lt;br /&gt;
The folder named AIs contains any AI.plist additions the OXP might use. &lt;br /&gt;
&lt;br /&gt;
* [[OXP howto AI|Making Oolite AI]]&lt;br /&gt;
&lt;br /&gt;
=== Config===&lt;br /&gt;
&lt;br /&gt;
This folder contains [[Property lists]] such as:&lt;br /&gt;
&lt;br /&gt;
* ''[[shipdata.plist]]'' that introduces any new entity (ships, stations, objects etc.) to Oolite.&lt;br /&gt;
* ''[[shipdata-overrides.plist]]'' that selectively can replace shipentries in other shipdata.plists&lt;br /&gt;
* ''[[shipyard.plist]]'' that introduces new ships available for player purchase.&lt;br /&gt;
* ''[[shipyard-overrides.plist]]'' that selectively can replace shipentries in other shipyard.plists&lt;br /&gt;
* ''[[script.plist]]'' to handle conditional ''script actions''. Note that [[script.js]] will be loaded in preference to script.plist if both exist. ([[script.oos]] was briefly introduced during 1.70 development but is now depracated in favour of JS.)&lt;br /&gt;
* ''[[planetinfo.plist]]'' that plots system specific changes from the default. May also contain ''script actions''.&lt;br /&gt;
* ''[[commodities.plist]]'' that contains information for each commodity in a market.&lt;br /&gt;
* ''[[misc plists|demoships.plist]]'' that selects demoships to show on startup.&lt;br /&gt;
* ''[[misc plists|descriptions.plist]]'' that adds vocabulary to Oolite texts.&lt;br /&gt;
* ''[[hud.plist]]'' that allows for changes or a radically new ''Head-Up Display''.&lt;br /&gt;
* ''[[characters.plist]]'' that adds non-player characters to Oolite.&lt;br /&gt;
* ''[[equipment.plist]]'' lists upgrades available from the Shipyard.&lt;br /&gt;
* ''[[misc plists|pirate-victim-roles.plist]]'' that defines which roles should act as traders.&lt;br /&gt;
* ''[[missiontext.plist]]'', ''[[speech_pronunciation_guide.plist]]'' are some of the other custom methods.&lt;br /&gt;
&lt;br /&gt;
All plist files except for those introducing new AI, belong in Config.&lt;br /&gt;
&lt;br /&gt;
In its simplest form, an OXP could contain only a Config with an altering ''script.plist'' or ''planetinfo.plist''.  An OXP that adds a new ship needs a ''shipdata.plist'' entry, and unless it is based entirely on existing Oolite data, would include a model and texture. &lt;br /&gt;
&lt;br /&gt;
* [[OXP howto plist|Making Oolite plists]]&lt;br /&gt;
&lt;br /&gt;
=== Models===&lt;br /&gt;
&lt;br /&gt;
Oolite models need to be in the '''.dat''' format. There are utilities available that convert models made in Wings 3D (.obj) and Meshwork (.mesh) into this. A .dat file can be opened in a plain text editor to view the object's assigned texture names and see that they correspond with the actual file names in the Textures folder. The .dat file must be named exactly as it is referenced in the shipdata ''model'' entry.&lt;br /&gt;
&lt;br /&gt;
* [[OXP howto model|Making Oolite models]]&lt;br /&gt;
&lt;br /&gt;
=== Textures===&lt;br /&gt;
&lt;br /&gt;
Oolite's textures are in the '''.png''' format, usually at a standard 1024x1024 size, and must be named exactly as they are named in the .dat file. &lt;br /&gt;
&lt;br /&gt;
* [[OXP howto texture|Making Oolite textures]]&lt;br /&gt;
&lt;br /&gt;
=== Requires ===&lt;br /&gt;
&lt;br /&gt;
Every oxp should contain a [[Property lists]] with the name ''requires.plist'' that is placed at the main level of the oxp folder. It contains just a dictionary with two entries: ''version'' and ''max_version''. ''version'' is the lowest Oolite version the code can run on. This ensures that older Oolite versions don't behave bad or crash because they load an oxp that does contain unknown stuff. The max_version is only needed when you want an oxp to not run with newer Oolite  versions. Very useful for adding in test versions of an oxp to ensure this test version is not used forever.&lt;br /&gt;
&lt;br /&gt;
=== A preview of things to come ===&lt;br /&gt;
&lt;br /&gt;
The scripting environment is being reworked to use JavaScript as the core scripting language. See [[Scripting Oolite with JavaScript]] for more information.&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
*[http://oolite.aegidian.org/cyoship/ Oolite Tutorial-Meshwork Shipbuilding]&lt;br /&gt;
*[http://oolite.aegidian.org/cyoship2/ Oolite Tutorial-Wings 3D Shipbuilding]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;br /&gt;
[[Category:Oolite scripting]]&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Viewing_a_Texture_or_Model&amp;diff=16924</id>
		<title>Viewing a Texture or Model</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Viewing_a_Texture_or_Model&amp;diff=16924"/>
		<updated>2009-11-18T03:30:04Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: /* How to view a specific model and / or texture in Oolite. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How to view a specific model and / or texture in Oolite. ==&lt;br /&gt;
&lt;br /&gt;
If the ship you want to view is your player ship simply launch the ship and press v to cycle through the external views. &lt;br /&gt;
&lt;br /&gt;
Otherwise ... &lt;br /&gt;
&lt;br /&gt;
===Install Debug.oxp===&lt;br /&gt;
&lt;br /&gt;
  1. Add Debug.oxp to your Oolite AddOns [http://wiki.alioth.net/index.php/Debug_OXP]&lt;br /&gt;
     -- Extract the archive.&lt;br /&gt;
     -- Move the extracted folder Debug.oxp to $PROGDIR/AddOns/&lt;br /&gt;
  2. Install PyDebugConsole [https://developer.berlios.de/project/showfiles.php?group_id=3577]&lt;br /&gt;
     -- Extract the archive&lt;br /&gt;
     -- Put the directory OODebugConsole wherever you like&lt;br /&gt;
&lt;br /&gt;
===Run Oolite with the DebugConsole=== &lt;br /&gt;
&lt;br /&gt;
  1. Run the DebugConsole [WhereverIPutIt/OODebugConsole/OODebugConsole.exe]&lt;br /&gt;
  2. Start Oolite (If you have modified an oxp hold down the shift key during during the boot&lt;br /&gt;
     (holding down shift clears the cache))&lt;br /&gt;
  3. Launch into space [Press 1](moving into a clear area helps). &lt;br /&gt;
&lt;br /&gt;
===Spawning the ship you want to view=== &lt;br /&gt;
&lt;br /&gt;
Type in the console&lt;br /&gt;
&lt;br /&gt;
  :spawn ''role''&lt;br /&gt;
&lt;br /&gt;
where ''role'' is the parameter to be passed to the :spawn macro. &lt;br /&gt;
&lt;br /&gt;
To find the correct argument for role refer to [i.e. open in a text editor]&lt;br /&gt;
&lt;br /&gt;
   config\shipdata.plist &lt;br /&gt;
&lt;br /&gt;
Find the entry for the ship in question in the shipdata.plist. [we'll call it shipX]&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Find the defined roles&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Use one of the defined roles as the argument for :spawn [found between ''&amp;lt;string&amp;gt;&amp;lt;/string&amp;gt;'']&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
       &amp;lt;dict&amp;gt; &lt;br /&gt;
       ... &lt;br /&gt;
       &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
       &amp;lt;string&amp;gt;shipX-trader shipX-escort shipX-hunter&amp;lt;/string&amp;gt; &lt;br /&gt;
       ... &lt;br /&gt;
       &amp;lt;/dict&amp;gt; &lt;br /&gt;
&lt;br /&gt;
yields&lt;br /&gt;
&lt;br /&gt;
       :spawn shipX-trader &lt;br /&gt;
in the console. &lt;br /&gt;
&lt;br /&gt;
====Modifying the shipdata.plist====&lt;br /&gt;
&lt;br /&gt;
If all the defined roles are generic* modify the shipdata.plist from:&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
       &amp;lt;dict&amp;gt; &lt;br /&gt;
       ... &lt;br /&gt;
       &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
       &amp;lt;string&amp;gt;trader escort hunter&amp;lt;/string&amp;gt;&lt;br /&gt;
       ... &lt;br /&gt;
       &amp;lt;/dict&amp;gt; &lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
       &amp;lt;dict&amp;gt; &lt;br /&gt;
       ... &lt;br /&gt;
       &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
       &amp;lt;string&amp;gt;shipX-trader trader escort hunter&amp;lt;/string&amp;gt; &lt;br /&gt;
       ... &lt;br /&gt;
       &amp;lt;/dict&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[* If the defined roles are only generic e.g trader|pirate|hunter|etc then a random ship fulfilling the role will be spawned. Not necessarily the one you wanted.]&lt;br /&gt;
&lt;br /&gt;
[Make sure to use a text editor suitable for programming. One that doesn't change the encoding or add junk to the file. EOL=LF+CR] &lt;br /&gt;
&lt;br /&gt;
===To park the spawned ship===&lt;br /&gt;
&lt;br /&gt;
To park the spawned ship target it then enter in the console&lt;br /&gt;
&lt;br /&gt;
  player.ship.target.setAI(&amp;quot;dumbAI.plist&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
To manipulate sub entities (if the ship has any) use the command:&lt;br /&gt;
&lt;br /&gt;
  player.ship.target.subEntities[0].position = [x, y, z]&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Viewing_a_Texture_or_Model&amp;diff=16923</id>
		<title>Viewing a Texture or Model</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Viewing_a_Texture_or_Model&amp;diff=16923"/>
		<updated>2009-11-18T03:06:13Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: How to view a specific model and / or texture in Oolite&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How to view a specific model and / or texture in Oolite. ==&lt;br /&gt;
&lt;br /&gt;
If the ship you want to view is your player ship simply launch the ship and press v to cycle through the external views. Otherwise ... &lt;br /&gt;
&lt;br /&gt;
Install Debug.oxp &lt;br /&gt;
&lt;br /&gt;
  Installing Debug.oxp &lt;br /&gt;
&lt;br /&gt;
  1. Add Debug.oxp to your Oolite Addons [http://wiki.alioth.net/index.php/Debug_OXP] &lt;br /&gt;
  2. Install PyDebugConsole [https://developer.berlios.de/project/showfiles.php?group_id=3577] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Run Oolite with the DebugConsole &lt;br /&gt;
&lt;br /&gt;
  1. Run the DebugConsole &lt;br /&gt;
  2. Start Oolite (holding down the shift key while it boots if an oxp has been changed&lt;br /&gt;
     (holding down shift clears the cache))&lt;br /&gt;
  3. Launch into space (moving into a clear area helps). &lt;br /&gt;
&lt;br /&gt;
Spawning the ship you want to view &lt;br /&gt;
&lt;br /&gt;
 Type in the console&lt;br /&gt;
  :spawn ''role''&lt;br /&gt;
 where ''role'' is the parameter to be passed to the :spawn macro. &lt;br /&gt;
&lt;br /&gt;
 To find the correct argument for role refer to [i.e. open in a text editor]&lt;br /&gt;
   config\shipdata.plist &lt;br /&gt;
&lt;br /&gt;
    Find the entry for the ship in question in the shipdata.plist. [we'll call it shipX]&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
    Find the defined roles&lt;br /&gt;
       &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
    Use one of the defined roles as the argument for :spawn [found between &amp;lt;string&amp;gt;&amp;lt;/string&amp;gt;]&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
       &amp;lt;dict&amp;gt; &lt;br /&gt;
       ... &lt;br /&gt;
       &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
       &amp;lt;string&amp;gt;shipX-trader shipX-escort shipX-hunter&amp;lt;/string&amp;gt; &lt;br /&gt;
       ... &lt;br /&gt;
       &amp;lt;/dict&amp;gt; &lt;br /&gt;
    yields&lt;br /&gt;
       :spawn shipX-trader &lt;br /&gt;
    in the console. &lt;br /&gt;
&lt;br /&gt;
    If all the defined roles are generic* modify the shipdata.plist from:&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
       &amp;lt;dict&amp;gt; &lt;br /&gt;
       ... &lt;br /&gt;
       &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
       &amp;lt;string&amp;gt;trader escort hunter&amp;lt;/string&amp;gt;&lt;br /&gt;
       ... &lt;br /&gt;
       &amp;lt;/dict&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    to&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;key&amp;gt;shipX&amp;lt;/key&amp;gt; &lt;br /&gt;
       &amp;lt;dict&amp;gt; &lt;br /&gt;
       ... &lt;br /&gt;
       &amp;lt;key&amp;gt;roles&amp;lt;/key&amp;gt; &lt;br /&gt;
       &amp;lt;string&amp;gt;shipX-trader trader escort hunter&amp;lt;/string&amp;gt; &lt;br /&gt;
       ... &lt;br /&gt;
       &amp;lt;/dict&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[* If the defined roles are only generic e.g trader|pirate|hunter|etc then a random ship fulfilling the role will be spawned. Not necessarily the one you wanted.]&lt;br /&gt;
&lt;br /&gt;
[Make sure to use a text editor suitable for programming. One that doesn't change the encoding or add junk to the file. EOL=LF+CR] &lt;br /&gt;
&lt;br /&gt;
To park the spawned ship target it then enter in the console:&lt;br /&gt;
  player.ship.target.setAI(&amp;quot;dumbAI.plist&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
To manipulate sub entities (if the ship has any) use the command: Code:&lt;br /&gt;
  player.ship.target.subEntities[0].position = [x, y, z]&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Debug_OXP&amp;diff=16903</id>
		<title>Debug OXP</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Debug_OXP&amp;diff=16903"/>
		<updated>2009-11-15T21:58:34Z</updated>

		<summary type="html">&lt;p&gt;Captain Berf: /* External JavaScript console support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Debug.oxp''' is a special OXP that enables JavaScript console support in test releases of Oolite (1.70 and later). It also adds a menu with various debug facilities under Mac OS X.&lt;br /&gt;
&lt;br /&gt;
=== Downloads ===&lt;br /&gt;
[[Media:DebugOXP-173.zip|Debug OXP for Oolite 1.73]] (162 KiB)&amp;lt;br&amp;gt;&lt;br /&gt;
[[Media:DebugOXP-172.zip|Debug OXP for Oolite 1.72]] (161 KiB)&amp;lt;br&amp;gt;&lt;br /&gt;
[[Media:DebugOXP-171.zip|Debug OXP for Oolite 1.71]] (149 KiB)&amp;lt;br&amp;gt;&lt;br /&gt;
[[Media:DebugOXP-170.zip|Debug OXP for Oolite 1.70]] (117 KiB)&lt;br /&gt;
&lt;br /&gt;
== External JavaScript console support ==&lt;br /&gt;
On all platforms, installing Debug.oxp enables support for external console applications using the [[Oolite debug console TCP protocol]]. By default, it will attempt to connect to a console running on the same computer, but this can be changed by specifying a different &amp;lt;code&amp;gt;console-host&amp;lt;/code&amp;gt; (and, optionally, &amp;lt;code&amp;gt;console-port&amp;lt;/code&amp;gt;) in ''debugConfig.plist''. For external console support on the same computer under Mac OS X, &amp;lt;code&amp;gt;console-host&amp;lt;/code&amp;gt; must be explicitly set to “127.0.0.1”; if this is not done, the [[#Integrated JavaScript console|integrated JavaScript console]] will be used instead. For information on using a console (integrated or external), see [[#Using the JavaScript console|Using the JavaScript console]] below.&lt;br /&gt;
&lt;br /&gt;
On Debian or Ubuntu Linux you will need (at least) the packages &amp;lt;code&amp;gt;blt python-tk tk8.5&amp;lt;/code&amp;gt; (or the equivalents in other distros.)&lt;br /&gt;
&lt;br /&gt;
== Mac OS X-specific features ==&lt;br /&gt;
Under Mac OS X, the Debug OXP provides a menu with various debugging options and an integrated JavaScript console, as well as enabling external console support as on all platforms.&lt;br /&gt;
&lt;br /&gt;
=== Debug menu ===&lt;br /&gt;
[[Image:Oolite-debug-menu.png|494px]]&lt;br /&gt;
&lt;br /&gt;
The Debug menu provides options to&lt;br /&gt;
* Show the Oolite run log in the standard Console application.&lt;br /&gt;
* Enable or disable various classes of log message at runtime (like editing ''logcontrol.plist'', without the need to restart Oolite).&lt;br /&gt;
* Enable various testing features, such as drawing of bounding boxes.&lt;br /&gt;
* Show the JavaScript console, and specify when it should be shown automatically. (This may not have any effect with external consoles, depending on the external console implementation.)&lt;br /&gt;
* Create a ship of any role near the main station (equivalent to the &amp;lt;code&amp;gt;:spawn&amp;lt;/code&amp;gt; [[#Macros|macro]]).&lt;br /&gt;
Note: some of these features are implemented by sending JavaScript messages to the [[#The console script|console script]]. If the script has been modified, some features may not work properly.&lt;br /&gt;
&lt;br /&gt;
The Log Message Classes submenu can be modified by editing ''debugLogMessageClassesMenu.plist'', found inside the OXP. This is merged from Config directories in the usual fashion.&lt;br /&gt;
&lt;br /&gt;
=== Integrated JavaScript console ===&lt;br /&gt;
[[Image:Oolite debug protocol example 1.png|594px]]&lt;br /&gt;
&lt;br /&gt;
The integrated JavaScript console provides a window within Oolite which acts as a [[#Using the JavaScript console|JavaScript console]]. It can be shown using the Show JavaScript Console command in the Debug menu, unless external console mode has been enabled by setting &amp;lt;code&amp;gt;console-host&amp;lt;/code&amp;gt; in ''debugConfig.plist''.&lt;br /&gt;
&lt;br /&gt;
The integrated console has a 100-line memory. To see previous commands, press ⇞ (Page Up) or ⌥↑ (Option-Up Arrow). You can go the other way in the obvious manner.&lt;br /&gt;
&lt;br /&gt;
== Using the JavaScript console ==&lt;br /&gt;
The JavaScript console, whether integrated or external, provides a powerful mechanism for interactively manipulating the game world. It can be used to issue simple commands, like &amp;lt;code&amp;gt;player.awardEquipment(&amp;quot;EQ_FUEL_INJECTION&amp;quot;)&amp;lt;/code&amp;gt;. It can be used to inspect properties of entities in the game world. And it can be used to develop scripts, by rewriting and testing methods of live ship scripts and world scripts.&lt;br /&gt;
&lt;br /&gt;
=== Macros ===&lt;br /&gt;
Macros are a special type of command prefixed with a colon. Instead of being interpreted as a JavaScript command, a macro is looked up in a dictionary, and the result is used as the “real” command. For instance, if you enter the command &amp;lt;code&amp;gt;:listM&amp;lt;/code&amp;gt; (short for “list macros”), the macro dictionary is queried for the string “listM”, and (by default) the code &amp;lt;code&amp;gt;for (let prop in macros) { ConsoleMessage('macro-list', ':' + prop) }&amp;lt;/code&amp;gt; is found and executed. This code is called the ''expansion'' of the macro. The result is a list of macros being printed:&lt;br /&gt;
 :clr&lt;br /&gt;
 :clear&lt;br /&gt;
 :spawn&lt;br /&gt;
 :bgColor&lt;br /&gt;
 :showM&lt;br /&gt;
 :rmFgColor&lt;br /&gt;
 ::&lt;br /&gt;
 :d&lt;br /&gt;
 :ds&lt;br /&gt;
 :listM&lt;br /&gt;
 :setM&lt;br /&gt;
 :delM&lt;br /&gt;
 :fgColor&lt;br /&gt;
 :rmBgColor&lt;br /&gt;
 :resetM&lt;br /&gt;
&lt;br /&gt;
As you can see in the example, To see the expansion of a macro without executing it, use &amp;lt;code&amp;gt;:showM&amp;lt;/code&amp;gt;:&lt;br /&gt;
 &amp;gt; :showM :delM&lt;br /&gt;
 :delM = deleteMacro(PARAM)&lt;br /&gt;
&lt;br /&gt;
When a macro with the word &amp;lt;code&amp;gt;PARAM&amp;lt;/code&amp;gt; is executed, &amp;lt;code&amp;gt;PARAM&amp;lt;/code&amp;gt; is replaced with any text following the macro name, surrounded in quotation marks. This is how &amp;lt;code&amp;gt;:showM&amp;lt;/code&amp;gt; functions, for example; the string “:showM :delM” is expanded to “showMacro(&amp;quot;:delM&amp;quot;)”, causing the JavaScript function &amp;lt;code&amp;gt;showMacro()&amp;lt;/code&amp;gt;, which is part of the [[#The console script|console script]], to be called. You can see the implementation of &amp;lt;code&amp;gt;showMacro()&amp;lt;/code&amp;gt; by entering &amp;lt;code&amp;gt;showMacro&amp;lt;/code&amp;gt; – without any parentheses – into the console.&lt;br /&gt;
&lt;br /&gt;
An initial set of macros is loaded from ''debugConfig.plist''. If you edit any macros, using &amp;lt;code&amp;gt;:setM&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;:delM&amp;lt;/code&amp;gt;, all macros are saved in Oolite’s preferences from that point forwards. This means that you don’t have to re-enter any macros you write with &amp;lt;code&amp;gt;:setM&amp;lt;/code&amp;gt; after restarting Oolite.&lt;br /&gt;
&lt;br /&gt;
The following example creates a simple :msg macro:&lt;br /&gt;
 &amp;gt; :setM msg ConsoleMessage(' ',PARAM)&lt;br /&gt;
If you then type:&lt;br /&gt;
 &amp;gt; :msg Hello World&lt;br /&gt;
The macro will be expanded, and you'll see “Hello World” on the console. However, macros are not functions, so you cannot use macros in the middle of javascript, or as part of another macro.&lt;br /&gt;
&lt;br /&gt;
=== The console script ===&lt;br /&gt;
While an external or integrated console is required to provide a means of user interaction, most of the actual behaviour of the console is implemented in JavaScript, in a script called ''oolite-mac-js-console.js''. (This is a mistake; the name will be changed to ''oolite-debug-console.js'' in Oolite 1.71.) Input typed into the console is passed to the console script, which then generates output. The console script is also informed of log messages and JavaScript errors, and provides a global function, &amp;lt;code&amp;gt;ConsoleMessage(colorCode: String, message: String)&amp;lt;/code&amp;gt;, to write messages to the console using its background colour support. Lastly, the console script implements the entire macro system.&lt;br /&gt;
&lt;br /&gt;
This means that the console’s behaviour can be extensively customized, for instance, by replacing the macro system with something more powerful. There are two basic approaches to doing this:&lt;br /&gt;
* Creating a custom script (or a copy) with the same name, in an OXP which loads later than Debug.oxp (e.g., one which has a name which comes later in alphabetical order).&lt;br /&gt;
* Using a normal world script, and changing the console script object at startup.&lt;br /&gt;
The latter approach has the advantage that it can continue to work with future versions of the console script, and multiple patches can coexist. For example, a modification to supplement the macro system with a better one might look as follows:&lt;br /&gt;
 this.name = &amp;quot;my-super-console-macros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 this.startUp = function()&lt;br /&gt;
 {&lt;br /&gt;
     // Ensure debug console is installed&lt;br /&gt;
     if (!debugConsole)  return&lt;br /&gt;
     &lt;br /&gt;
     // Save original implementation of consolePerformJSCommand&lt;br /&gt;
     // Note the prefix, used to ensure uniqueness. If several scripts patch&lt;br /&gt;
     // the same method, it's important that they use different names.&lt;br /&gt;
     debugConsole.mySuperConsoleMacros_original_consolePerformJSCommand = debugConsole.consolePerformJSCommand&lt;br /&gt;
     &lt;br /&gt;
     // Replace debugConsole.consolePerformJSCommand with custom function&lt;br /&gt;
     debugConsole.consolePerformJSCommand = function(command)&lt;br /&gt;
     {&lt;br /&gt;
         // Note that in this function &amp;quot;this&amp;quot; will refer to debugconsole, not&lt;br /&gt;
         // my-super-console-macros, since the function will be called as a&lt;br /&gt;
         // method of debugConsole.&lt;br /&gt;
         &lt;br /&gt;
         // Strip leading spaces, same code as original function.&lt;br /&gt;
         while (command.charAt(0) == &amp;quot; &amp;quot;)&lt;br /&gt;
         {&lt;br /&gt;
             command = command.substring(1)&lt;br /&gt;
         }&lt;br /&gt;
         &lt;br /&gt;
         if (command.charAt(0) == &amp;quot;!&amp;quot;)&lt;br /&gt;
         {&lt;br /&gt;
             // Super macro call detected.&lt;br /&gt;
             // Insert super macro system here.&lt;br /&gt;
         }&lt;br /&gt;
         else&lt;br /&gt;
         {&lt;br /&gt;
             // Otherwise, call through to original method.&lt;br /&gt;
             debugConsole.mySuperConsoleMacros_original_consolePerformJSCommand(command)&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
This same patching technique, incidentally, can be used to modify scripts at runtime, either from the console or from other scripts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{unclassified-OXP}}&lt;br /&gt;
[[Category:Oolite utilities]]&lt;/div&gt;</summary>
		<author><name>Captain Berf</name></author>
		
	</entry>
</feed>