Join us at the Oolite Anniversary Party -- London, 7th July 2024, 1pm
More details in this thread.

Oolite Wiki

General discussion for players of Oolite.

Moderators: another_commander, winston

User avatar
phkb
Impressively Grand Sub-Admiral
Impressively Grand Sub-Admiral
Posts: 4664
Joined: Tue Jan 21, 2014 10:37 pm
Location: Writing more OXPs, because the world needs more OXPs.

Re: Oolite Wiki

Post by phkb »

Cholmondely wrote: Tue Jul 05, 2022 6:00 am
Suggestion: add date of version & platform details (AppleMac etc) to the wiki page.
I was trying to avoid splitting the zip files, to keep them the same as the Google Drive versions. But it might not be possible.
Cholmondely wrote: Tue Jul 05, 2022 6:00 am
For coding reference purposes I doubt that we need all 3 versions, but I'm just a dumb pilot!
Given the coding differences that exist between the different platforms, we actually do need all 3 versions.
User avatar
Cholmondely
Archivist
Archivist
Posts: 5020
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: Oolite Wiki

Post by Cholmondely »

Addition to Concepts category

NPC concept page now up on our wiki! (Crew has been up for some time now)



Corrections/Additions eagerly welcomed...
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
User avatar
Cholmondely
Archivist
Archivist
Posts: 5020
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: Oolite Wiki

Post by Cholmondely »

We have two seemingly identical categories on our wiki:

Category:Broken OXPs

and

Category:Deprecated OXPs


Is there some sort of significant difference between these which I should know about?
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
User avatar
montana05
---- E L I T E ----
---- E L I T E ----
Posts: 1166
Joined: Mon May 30, 2016 3:54 am
Location: lurking in The Devils Triangle (G1)

Re: Oolite Wiki

Post by montana05 »

Cholmondely wrote: Sun Dec 18, 2022 11:53 am
We have two seemingly identical categories on our wiki:

Category:Broken OXPs

and

Category:Deprecated OXPs


Is there some sort of significant difference between these which I should know about?
Personal view of mine, just merge them and keep it under Broken OXP's so that non-native English visitors understand it.
Scars remind us where we've been. They don't have to dictate where we're going.
User avatar
Cholmondely
Archivist
Archivist
Posts: 5020
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: Oolite Wiki

Post by Cholmondely »

montana05 wrote: Sun Dec 18, 2022 1:15 pm
Cholmondely wrote: Sun Dec 18, 2022 11:53 am
We have two seemingly identical categories on our wiki:

Category:Broken OXPs

and

Category:Deprecated OXPs


Is there some sort of significant difference between these which I should know about?
Personal view of mine, just merge them and keep it under Broken OXP's so that non-native English visitors understand it.
Excellent point. I intend to follow it if nobody else argues against. But is there a significant difference?
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
Switeck
---- E L I T E ----
---- E L I T E ----
Posts: 2412
Joined: Mon May 31, 2010 11:11 pm

Re: Oolite Wiki

Post by Switeck »

Deprecated OXPs might work just fine either on older versions of Oolite OR the current version of Oolite using soon-to-be-removed features.
User avatar
Cholmondely
Archivist
Archivist
Posts: 5020
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: Oolite Wiki

Post by Cholmondely »

A problem I can't seem to solve

1) I've fixed the "Norman Mosser" red links (there were 9 of them), but this "red link" remains: https://wiki.alioth.net/index.php/Speci ... man_Mosser

I don't see anything at all on the page (https://wiki.alioth.net/index.php/Elite ... d_Articles) with this supposed red link.

Any ideas?
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
User avatar
Cholmondely
Archivist
Archivist
Posts: 5020
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: Oolite Wiki

Post by Cholmondely »

New Wiki page up: Humour
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
User avatar
Cholmondely
Archivist
Archivist
Posts: 5020
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: Oolite Wiki

Post by Cholmondely »

Just to say, I've added the following into the [urlhttps://wiki.alioth.net/index.php/Oolite_JavaScript_Reference:_Player]Oolite JavaScript Reference: Player wiki page.[/url]

I realise that there are going to be oodles of them. I can also see looming issues of duplication (criminal_hate_score might tally to some extent with a pro-GalCop stance). Suggestions for more are eagerly welcomed!
Random Hits
missionVariables.random_hits_criminal_hate_score

LitF
_litf.LITF_cmdStats.health
_litf.LITF_cmdStats.sickness
_litf.LITF_cmdStats.strength
_litf.LITF_cmdStats.reputation
_litf.LITF_cmdStats.stance
Don't forget that I'm just a dumb pilot whose trying to be helpful!
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
Alnivel
Dangerous
Dangerous
Posts: 100
Joined: Fri Jun 10, 2022 7:05 pm

Re: Oolite Wiki

Post by Alnivel »

Cholmondely wrote: Sat Mar 04, 2023 9:38 pm
Just to say, I've added the following into the Oolite JavaScript Reference: Player wiki page.

I realise that there are going to be oodles of them. I can also see looming issues of duplication (criminal_hate_score might tally to some extent with a pro-GalCop stance). Suggestions for more are eagerly welcomed!
Random Hits
missionVariables.random_hits_criminal_hate_score

LitF
_litf.LITF_cmdStats.health
_litf.LITF_cmdStats.sickness
_litf.LITF_cmdStats.strength
_litf.LITF_cmdStats.reputation
_litf.LITF_cmdStats.stance
Don't forget that I'm just a dumb pilot whose trying to be helpful!
I don't think that it belongs to that wiki page - sure, those variables is about player, but they have nothing to deal with the global variable player, the instance of the Player class. random_hits_criminal_hate_score is mission variable, _litf.* is properties of LitF's world script.

You probably have seen the list of the non-standard properties for the Planet class, but they are listed there because they are added by OXPs directly to Oolite objects - you can check system.mainPlanet.isGasGiant in same way as you would check standart system.mainPlanet.hasAtmosphere . However, in the case of, for example, _litf.LITF_cmdStats.health, it is not property of player, so you can't use it as player._litf.LITF_cmdStats.health

Perhaps it makes sense to gather the various points of possible interaction with OXPs, but they should be placed on their own page.
User avatar
Cholmondely
Archivist
Archivist
Posts: 5020
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: Oolite Wiki

Post by Cholmondely »

hiran wrote: Sun Apr 11, 2021 10:18 am
While creating a parser with all such exceptions is not impossible (actually I just did it) I am still wondering how all these nice OXPs actually work in Oolite. It must have a very forgiving parser, and I hope to meet the same kind of forgiveness...
I think that I may need to come back to you over your .plist editor!

I've been trying to rehabilitate the Hathor station. But this shipdata.plist does not work:

Code: Select all

{
"hathor" = 
	{
	ai_type = "stationAI.plist";
	beacon = "TSBEACON";
	auto_ai = yes;
	aft_eject_position = "0.0 13.0 0.0";
	energy_recharge_rate = 4;	
	max_cargo = 2;
	has_ecm = "true";
	has_escape_pod = "true";
	heat_insulation = 1.0;
	has_scoop = "true";
	name = "Hathor Station";
	model = "2xhath.dat"; 
	roles = "station(0) KW_hathor inquirer_station"; //added inquirer_station
 	thrust = 50;	
	smooth = "false";	
	frangible = "false";

	market_capacity = 150;
	market_definition = (
		{
		"type" = "class";
		"name" = "oolite-farming";
		"price_multiplier" = 0.7;
		"price_randomiser" = 0.2;
		"quantity_multiplier" = 1.5;
		"quantity_randomiser" = 0.5;
		}, 			
		{
		"type" = "default";
		"capacity" = 0;
		};
			);
	market_monitored = no;


subentities =
   (
      {
         subentity_key = "hath-dock";
         type = "standard";
        is_dock = true;
		position = (0, -120, 125);
      },
      {
         subentity_key = "hath-tunnel";
         type = "standard";
      },

	  {
         subentity_key = "hath-power";
         type = "standard";
      },
	  
      {
       subentity_key = "hath-flasher2";
         type = "flasher";
		 position = (-96.2, 3455, -713.4);
		 color = yellowColor;
		 frequency = 1;
		 size = 40;
      },
      {
         subentity_key = "hath-flasher1";
         type = "flasher";
		 position = (116, 3913, -857.4);
		 color = redColor;
		 frequency = 2;
		 size = 40;
      }


	);	
	
shaders = 
		{ 
            "kwhathortex.png" = 
			{ 
                vertex_shader = "kwhathshaderv.vertex"; 
                fragment_shader = "kwhathshaderf.fragment"; 
                textures = 
						(
							"kwhathortex.png", 
							"kwhathornormals.png",
							"kwhathoreffects.png",
							"kwhathorlites.png",
						);
				uniforms =
						{
						uColorMap = { type = texture; value = 0; }; 
						uNormalMap = { type = texture; value = 1; }; 
						uEffectsMap = { type = texture; value = 2; };
						uGlowMap = { type = texture; value = 3; };	
						uTime = "universalTime";
						nearly_dead = "throwingSparks";	
						hull_heat_level = "hullHeatLevel";	 				
						engine_power = "speedFactor"; 
						}; 	
			}; 
		};

	};
	
"hath-dock" =  
	{
	ai_type = "nullAI.plist";
	name = "Hathor Dock";
	model = "hdockarea.dat"; 
	roles = "KWhath-dock"; 
	};
	
	"hath-tunnel" =  
	{
	ai_type = "nullAI.plist";
	name = "Hathor";
	model = "2xhathtunnel.dat"; 
	roles = "hath-subent"; 
		materials = 
				{ 
					"kwhdocktex.png" = 
					{ 
						diffuse_map = "kwhdocktex.png"; 
						specular_color = ( 0.2, 0.2, 0.2 );  // Applies when specular map is not used (no shaders) 
						shininess = 2; 
					}; 
				};
	shaders = 
			{ 
				"kwhdocktex.png" = 
				{ 
					vertex_shader = "kwhathshaderv.vertex"; 
					fragment_shader = "kwhathdockf.fragment"; 
					textures = 
							(
								"kwhdocktex.png", 
								"kwhdocknormals.png",
								{name = "kwhdockeffects.png"; repeat_s = "yes";}
							);
					uniforms =
							{
							uColorMap = { type = texture; value = 0; };
							uNormalMap = { type = texture; value = 1; };
							uEffectsMap = { type = texture; value = 2; };
							uTime = "universalTime";					
							hull_heat_level = "hullHeatLevel";							
							}; 	
				}; 
			};	

	};

	
"hath-power" =  
	{
	ai_type = "nullAI.plist";
	name = "Hathor";
	model = "2xhathpower.dat"; 
	roles = "hath-subent"; 
			shaders = 
		{ 
            "kwhpowertex.png" = 
			{ 
                vertex_shader = "kwhathshaderv.vertex"; 
                fragment_shader = "kwhathshaderf.fragment"; 
                textures = 
						(
							"kwhpowertex.png", 
							"kwhpowernormals.png",
							"kwhpowereffects.png",
							"kwhpowerlites.png",
						);
				uniforms =
						{
						uColorMap = { type = texture; value = 0; }; 
						uNormalMap = { type = texture; value = 1; }; 
						uEffectsMap = { type = texture; value = 2; };
						uGlowMap = { type = texture; value = 3; };	
						uTime = "universalTime";
						nearly_dead = "throwingSparks";	
						hull_heat_level = "hullHeatLevel";	 				
						engine_power = "speedFactor"; 
						}; 	
			}; 
		};

	};
	

}
But this does (Market definitions commented out):

Code: Select all

{
"hathor" = 
	{
	ai_type = "stationAI.plist";
	beacon = "TSBEACON";
	auto_ai = yes;
	aft_eject_position = "0.0 13.0 0.0";
	energy_recharge_rate = 4;	
	max_cargo = 2;
	has_ecm = "true";
	has_escape_pod = "true";
	heat_insulation = 1.0;
	has_scoop = "true";
	name = "Hathor Station";
	model = "2xhath.dat"; 
	roles = "station(0) KW_hathor inquirer_station"; //added inquirer_station
 	thrust = 50;	
	smooth = "false";	
	frangible = "false";

//	market_capacity = 150;
//	market_definition = (
//		{
//		"type" = "class";
//		"name" = "oolite-farming";
//		"price_multiplier" = 0.7;
//		"price_randomiser" = 0.2;
//		"quantity_multiplier" = 1.5;
//		"quantity_randomiser" = 0.5;
//		}, 			
//		{
//		"type" = "default";
//		"capacity" = 0;
//		};
//			);
//	market_monitored = no;


subentities =
   (
      {
         subentity_key = "hath-dock";
         type = "standard";
        is_dock = true;
		position = (0, -120, 125);
      },
      {
         subentity_key = "hath-tunnel";
         type = "standard";
      },

	  {
         subentity_key = "hath-power";
         type = "standard";
      },
	  
      {
       subentity_key = "hath-flasher2";
         type = "flasher";
		 position = (-96.2, 3455, -713.4);
		 color = yellowColor;
		 frequency = 1;
		 size = 40;
      },
      {
         subentity_key = "hath-flasher1";
         type = "flasher";
		 position = (116, 3913, -857.4);
		 color = redColor;
		 frequency = 2;
		 size = 40;
      }


	);	
	
shaders = 
		{ 
            "kwhathortex.png" = 
			{ 
                vertex_shader = "kwhathshaderv.vertex"; 
                fragment_shader = "kwhathshaderf.fragment"; 
                textures = 
						(
							"kwhathortex.png", 
							"kwhathornormals.png",
							"kwhathoreffects.png",
							"kwhathorlites.png",
						);
				uniforms =
						{
						uColorMap = { type = texture; value = 0; }; 
						uNormalMap = { type = texture; value = 1; }; 
						uEffectsMap = { type = texture; value = 2; };
						uGlowMap = { type = texture; value = 3; };	
						uTime = "universalTime";
						nearly_dead = "throwingSparks";	
						hull_heat_level = "hullHeatLevel";	 				
						engine_power = "speedFactor"; 
						}; 	
			}; 
		};

	};
	
"hath-dock" =  
	{
	ai_type = "nullAI.plist";
	name = "Hathor Dock";
	model = "hdockarea.dat"; 
	roles = "KWhath-dock"; 
	};
	
	"hath-tunnel" =  
	{
	ai_type = "nullAI.plist";
	name = "Hathor";
	model = "2xhathtunnel.dat"; 
	roles = "hath-subent"; 
		materials = 
				{ 
					"kwhdocktex.png" = 
					{ 
						diffuse_map = "kwhdocktex.png"; 
						specular_color = ( 0.2, 0.2, 0.2 );  // Applies when specular map is not used (no shaders) 
						shininess = 2; 
					}; 
				};
	shaders = 
			{ 
				"kwhdocktex.png" = 
				{ 
					vertex_shader = "kwhathshaderv.vertex"; 
					fragment_shader = "kwhathdockf.fragment"; 
					textures = 
							(
								"kwhdocktex.png", 
								"kwhdocknormals.png",
								{name = "kwhdockeffects.png"; repeat_s = "yes";}
							);
					uniforms =
							{
							uColorMap = { type = texture; value = 0; };
							uNormalMap = { type = texture; value = 1; };
							uEffectsMap = { type = texture; value = 2; };
							uTime = "universalTime";					
							hull_heat_level = "hullHeatLevel";							
							}; 	
				}; 
			};	

	};

	
"hath-power" =  
	{
	ai_type = "nullAI.plist";
	name = "Hathor";
	model = "2xhathpower.dat"; 
	roles = "hath-subent"; 
			shaders = 
		{ 
            "kwhpowertex.png" = 
			{ 
                vertex_shader = "kwhathshaderv.vertex"; 
                fragment_shader = "kwhathshaderf.fragment"; 
                textures = 
						(
							"kwhpowertex.png", 
							"kwhpowernormals.png",
							"kwhpowereffects.png",
							"kwhpowerlites.png",
						);
				uniforms =
						{
						uColorMap = { type = texture; value = 0; }; 
						uNormalMap = { type = texture; value = 1; }; 
						uEffectsMap = { type = texture; value = 2; };
						uGlowMap = { type = texture; value = 3; };	
						uTime = "universalTime";
						nearly_dead = "throwingSparks";	
						hull_heat_level = "hullHeatLevel";	 				
						engine_power = "speedFactor"; 
						}; 	
			}; 
		};

	};
	

}
Al I get from the AppleMac's plutil is gubbins/Oolite/AddOns/oolite.oxp.Killer Wolf.hathor_station.oxp/Config/shipdata.plist: Unexpected character { at line 1

I have been ogling braces, staring at semi-colons and peeking at commas - and am utterly fed up. All I can find on the subject is this:
The round brackets are arrays in OpenStep, and are used to group information for a given key. Examples are the exhaust (if one has multiple ones for a given ship), the individual custom views and sub-entities...

The curly brackets make up dictionaries, which tie together different keys on the same subject. The two main examples there are the overall entries themselves (each ship is made up of a dictionary of keys describing it) and the external views (a dictionary of individual views, each of which is defined as an array of keys describing that given view). (Thargoid 2011)
Nothing about when one uses a comma or a semi-colon - and since I don't even comprehend the difference between a dictionary and an array, I am floundering and feeling frustrated!
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
User avatar
hiran
Theorethicist
Posts: 2078
Joined: Fri Mar 26, 2021 1:39 pm
Location: a parallel world I created for myself. Some call it a singularity...

Re: Oolite Wiki

Post by hiran »

Cholmondely wrote: Mon Mar 13, 2023 5:15 pm
Al I get from the AppleMac's plutil is gubbins/Oolite/AddOns/oolite.oxp.Killer Wolf.hathor_station.oxp/Config/shipdata.plist: Unexpected character { at line 1

I have been ogling braces, staring at semi-colons and peeking at commas - and am utterly fed up.
Yes, that can happen with unfortunate syntax and without tools providing good error messages. I'd not even try looking for the issue manually/optically. Have you tried using my parser?
Cholmondely wrote: Mon Mar 13, 2023 5:15 pm
All I can find on the subject is this:
The round brackets are arrays in OpenStep, and are used to group information for a given key. Examples are the exhaust (if one has multiple ones for a given ship), the individual custom views and sub-entities...

The curly brackets make up dictionaries, which tie together different keys on the same subject. The two main examples there are the overall entries themselves (each ship is made up of a dictionary of keys describing it) and the external views (a dictionary of individual views, each of which is defined as an array of keys describing that given view). (Thargoid 2011)
Nothing about when one uses a comma or a semi-colon - and since I don't even comprehend the difference between a dictionary and an array, I am floundering and feeling frustrated!
So to shed some light here:
In a dictionary, every value has a name. To markup a dictionary you need to use curly braces, and it would look like this:

{
"name1" = "value1";
"name2" = "value2";
}

Not all names have to go into quotes, and not all values require them. But you now need to watch out where you place them and where not.
Note that after every key/value pair there is a semicolon.

For arrays, you have several values without name, and they are grouped using round brackets:

(
value1,
value2,
value3
)

Later the values are just accessed by numbers: The first, the second, the next, the last, ...
Note that between two values there is a comma.

Now the part that can make plist files really complex:
Wherever you place a value, it can be a primitive one (a number, a string, a boolean value like true/false) or a complex value such as an array or a dictionary. And with this you can create all the complex structures you perceive when looking at Oolite's plist files.

There is some stuff written on Wikipedia, but a more precise definition is required for parsers:
https://en.wikipedia.org/wiki/Property_list

So again: Try to run parsers/linters - but those that give good error messages. The example you gave is not really helping.
If you are out of suitable software, try the PList tester contained in https://github.com/HiranChaudhuri/OoliteAddonScanner
Sunshine - Moonlight - Good Times - Oolite
User avatar
Cholmondely
Archivist
Archivist
Posts: 5020
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: Oolite Wiki

Post by Cholmondely »

New Wiki page up: Ethics

Any suggestions for improvement are more than welcome!
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
User avatar
hiran
Theorethicist
Posts: 2078
Joined: Fri Mar 26, 2021 1:39 pm
Location: a parallel world I created for myself. Some call it a singularity...

Re: Oolite Wiki

Post by hiran »

Cholmondely wrote: Thu Apr 20, 2023 11:49 pm
Any suggestions for improvement are more than welcome!
One important improvement, IMHO would be to save the work invested so far. If oolite.org can break away that easily I have a hunch this might as well happen to the wiki and the forum. With timer's work we might have a chance to collect it all under one stable umbrella, yet this work needs to be done. Who can help?
Sunshine - Moonlight - Good Times - Oolite
User avatar
Cholmondely
Archivist
Archivist
Posts: 5020
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: Oolite Wiki

Post by Cholmondely »

Alnivel wrote: Fri Jan 13, 2023 8:34 pm
it should be considered a feature
Just seen your recent addition to the Planetinfo.plist page - goodness! It really gets the imaginative juices flowing!

Apologies for the lack of contact re your work on TCA. My first Jameson elicited no response once the mission was completed (docked some 20 or so times), and I wonder if I know why. So I've started a second - but have yet to see any of the final mission screens despite visiting Tionisla Main Station, TOGY, Isinor, Isinor RH, Qutiri and just now, Ensoreus. Will do another 5 dockings or so before I bug you again!
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
Post Reply