Difference between revisions of "Saved game"

From Elite Wiki
(Detail: Added a little more)
 
Line 268: Line 268:
 
  <integer>68</integer>
 
  <integer>68</integer>
 
  </dict>
 
  </dict>
  <key>role_system_memory</key>
+
  <key>role_system_memory</key>                   <---- List of systems most recent systems visited (max of 32 entries)
 
  <array>
 
  <array>
 
  <integer>175</integer>
 
  <integer>175</integer>
Line 275: Line 275:
 
  <integer>176</integer>
 
  <integer>176</integer>
 
  </array>
 
  </array>
  <key>role_weight_flags</key>
+
  <key>role_weight_flags</key>                     <---- List of activities the player has done in the current system
  <dict>
+
  <dict>                                                 The more often the activities are performed, the more likely it will
  <key>bought-legal</key>
+
  <key>bought-legal</key>                       result in a change to role_weights
 
  <integer>1</integer>
 
  <integer>1</integer>
 
  </dict>
 
  </dict>
  <key>role_weights</key>
+
  <key>role_weights</key>                           <---- List of roles that the player has accumulated by doing various activities
  <array>
+
  <array>                                                 NPC AI's will pick a random one from this list when making some decisions
 
  <string>trader</string>
 
  <string>trader</string>
 
  <string>player-unknown</string>
 
  <string>player-unknown</string>

Latest revision as of 04:57, 20 July 2026

Saved games are also popularly known as Jamesons.

Overview

  • Scenarios may need Saved Games as part of their OXP (see the SOTL Exploration and SOTL Altmap scenarios whose joint loader contains a Saved Game for each).

The AppleMac version of Oolite gives the player little detail about each saved game (just the file name and date of the save). The Windows and Linux versions give considerably more - as does Oolite Starter (name, system, money, Elite ranking...).

Detail

The Saved games are written in XML.

Strict Game Jamesons look like this (note alphabetical order - "aft-weapon" is quite distant from "forward-weapon"):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>aft_weapon</key>
	<string>EQ_WEAPON_BEAM_LASER</string>
	<key>chart_ana_mode</key>
	<integer>1</integer>
	<key>chart_colour_mode</key>                       <--- F6 screen (galactic chart) as modified by pressing "?" (sun colour/politics etc)
	<integer>1</integer>
	<key>chart_zoom</key>
	<real>1</real>
	<key>checksum</key>                                <--- Checksum is based on a handful of figures such as credits, weapons, legal status etc.
	<integer>14622</integer>
	<key>comm_log</key>
	<array>
		<string>Moray Star Boat:</string>
		<string> Leave us alone!</string>
		<string>Python:</string>
		<string>Your cargo or your life, Joy of Digebiti. 4 </string>
		<string>barrels and we'll let you go.</string>
		<string>Oresle 2084064:11:48:08</string>
		<string>Esgerean 2084064:14:25:07</string>
		<string>Rarere 2084065:10:12:57</string>
		<string>Ervein 2084065:23:39:44</string>
		<string>Usralaat 2084067:03:40:26</string>
		<string>Coriolis Station:</string>
		<string>We do not require docking clearance, </string>
		<string>Commander. Feel free to dock at any time.</string>
	</array>
	<key>contract_record</key>
	<dict/>
	<key>contracts</key>₢
	<array/>
	<key>credits</key>                                 <--- These are in decicredits: ie. 4,095.4₢
	<real>40954</real>
	<key>current_system_economy</key>
	<integer>3</integer>
	<key>current_system_government</key>
	<integer>2</integer>
	<key>current_system_name</key>
	<string>Usralaat</string>
	<key>current_system_techlevel</key>
	<integer>5</integer>
	<key>custom_view_index</key>                       <--- This is the last of the 8 external views which you had looked at (press "v")
	<integer>0</integer>
	<key>docked_station_position</key>                 <--- Really the position of the player's ship
	<array>
		<real>5956.64013671875</real>
		<real>58354.8828125</real>
		<real>473098.5625</real>
	</array>
	<key>docked_station_role</key>                     <--- This is the primary role of the station the player was docked at when the game was saved.
	<string>coriolis</string>
	<key>docking_clearance_protocol</key>
	<false/>
	<key>entity_personality</key>                      <--- Optional. Used by OXPs to e.g. change the colour of ships
	<integer>27070</integer>
	<key>escape_pod_rescue_time</key>
	<real>0.0</real>
	<key>extra_equipment</key>
	<dict>
		<key>EQ_ADVANCED_COMPASS</key>
		<integer>1</integer>
		<key>EQ_ADVANCED_NAVIGATIONAL_ARRAY</key>
		<integer>1</integer>
		<key>EQ_CARGO_BAY</key>
		<integer>1</integer>
		<key>EQ_ECM</key>
		<integer>1</integer>
		<key>EQ_ENERGY_UNIT</key>
		<integer>1</integer>
		<key>EQ_FUEL_INJECTION</key>
		<integer>1</integer>
		<key>EQ_FUEL_SCOOPS</key>
		<integer>1</integer>
		<key>EQ_INTEGRATED_TARGETING_SYSTEM</key>
		<integer>1</integer>
		<key>EQ_SCANNER_SHOW_MISSILE_TARGET</key>
		<integer>1</integer>
		<key>EQ_TARGET_MEMORY</key>
		<integer>1</integer>
	</dict>
	<key>forward_weapon</key>
	<string>EQ_WEAPON_MILITARY_LASER</string>
	<key>found_system_id</key>
	<string>250</string>
	<key>fuel</key>
	<integer>70</integer>
	<key>galaxy_id</key>
	<string>0</string>
	<key>galaxy_number</key>
	<integer>0</integer>
	<key>legal_status</key>
	<integer>0</integer>
	<key>localMarket</key>
	<array>
		<array>
			<string>food</string>
			<integer>12</integer>
			<integer>55</integer>
		</array>
		<array>
			<string>textiles</string>
			<integer>1</integer>
			<integer>73</integer>
		</array>
		<array>
			<string>radioactives</string>
			<integer>14</integer>
			<integer>243</integer>
		</array>
		<array>
			<string>slaves</string>
			<integer>18</integer>
			<integer>200</integer>
		</array>
		<array>
			<string>liquor_wines</string>
			<integer>0</integer>
			<integer>294</integer>
		</array>
		<array>
			<string>luxuries</string>
			<integer>30</integer>
			<integer>889</integer>
		</array>
		<array>
			<string>narcotics</string>
			<integer>53</integer>
			<integer>282</integer>
		</array>
		<array>
			<string>computers</string>
			<integer>45</integer>
			<integer>793</integer>
		</array>
		<array>
			<string>machinery</string>
			<integer>25</integer>
			<integer>546</integer>
		</array>
		<array>
			<string>alloys</string>
			<integer>30</integer>
			<integer>384</integer>
		</array>
		<array>
			<string>firearms</string>
			<integer>6</integer>
			<integer>677</integer>
		</array>
		<array>
			<string>furs</string>
			<integer>19</integer>
			<integer>766</integer>
		</array>
		<array>
			<string>minerals</string>
			<integer>57</integer>
			<integer>119</integer>
		</array>
		<array>
			<string>gold</string>
			<integer>12</integer>
			<integer>398</integer>
		</array>
		<array>
			<string>platinum</string>
			<integer>18</integer>
			<integer>694</integer>
		</array>
		<array>
			<string>gem_stones</string>
			<integer>10</integer>
			<integer>194</integer>
		</array>
		<array>
			<string>alien_items</string>
			<integer>0</integer>
			<integer>397</integer>
		</array>
	</array>
	<key>market_rnd</key>
	<integer>101</integer>
	<key>max_cargo</key>
	<integer>35</integer>
	<key>max_passengers</key>
	<integer>1</integer>
	<key>missile_roles</key>
	<array>
		<string>EQ_MISSILE</string>
		<string>EQ_MISSILE</string>
		<string>EQ_MISSILE</string>
		<string>NONE</string>
	</array>
	<key>missiles</key>
	<integer>3</integer>
	<key>mission_destinations</key>
	<dict/>
	<key>mission_variables</key>
	<dict>
		<key>mission_oolite_contract_clientnames</key>
		<string>["","","","","","","","Eran Se","","","","","","","","","","","",""]</string>
		<key>mission_oolite_contracts_cargo</key>
		<string>[{"commodity":"alloys","size":90,"destination":49,"route":{"jumps":10,"route":[134,5,243,179,91,16,185,86,138,51,49],"distance":55.2,"time":320.6400000000001},"payment":6560,"deposit":5580,"deadline":180064869828.7059},{"commodity":"slaves","size":80,"destination":214,"route":{"jumps":16,"route":[134,5,57,145,110,62,131,249,168,48,140,43,226,211,68,219,214],"distance":78.8,"time":416.8},"payment":2860,"deposit":2620,"deadline":180065087297.7059},{"commodity":"narcotics","size":128,"destination":165,"route":{"jumps":16,"route":[134,5,57,145,110,62,131,249,168,48,140,43,210,199,192,72,165],"distance":81.60000000000001,"time":445.44000000000005},"payment":8960,"deposit":5620,"deadline":180065199476.7059},{"commodity":"narcotics","size":113,"destination":160,"route":{"jumps":4,"route":[134,176,119,122,160],"distance":20,"time":105.60000000000001},"payment":8860,"deposit":5020,"deadline":180064235739.7059},{"commodity":"luxuries","size":56,"destination":188,"route":{"jumps":11,"route":[134,5,57,145,110,62,131,249,168,48,37,188],"distance":53.6,"time":288.00000000000006},"payment":9620,"deposit":8460,"deadline":180064631807.7059},{"commodity":"radioactives","size":49,"destination":9,"route":{"jumps":7,"route":[134,5,57,133,4,184,105,9],"distance":34.800000000000004,"time":184.16000000000005},"payment":2280,"deposit":2040,"deadline":180064655021.7059},{"commodity":"furs","size":128,"destination":129,"route":{"jumps":13,"route":[134,5,57,145,110,62,131,42,29,222,89,73,227,129],"distance":69.2,"time":377.4400000000001},"payment":18180,"deposit":15280,"deadline":180064890894.7059}]  </string>
		<key>mission_oolite_contracts_parcels</key>
		 		+ loads of cases as above
		<key>mission_oolite_contracts_passengers</key>
				+ loads of cases
		<key>mission_trumbles</key>
		<string>BUY_ME</string>
	</dict>
	<key>parcel_record</key>
	<dict/>
	<key>parcels</key>
	<array/>
	<key>passenger_record</key>
	<dict>
		<key>Eran Se</key>
		<real>180063648536.5784</real>
	</dict>
	<key>passengers</key>
	<array/>
	<key>player_name</key>
	<string>New Thrashbarg</string>
	<key>player_save_name</key>
	<string>Thrashbarg the Tremendous</string>
	<key>port_weapon</key>
	<string>EQ_WEAPON_NONE</string>
	<key>primed_equipment_a</key>
	<string>EQ_CLOAKING_DEVICE</string>
	<key>primed_equipment_b</key>
	<string>EQ_ENERGY_BOMB</string>
	<key>reputation</key>
	<dict>
		<key>contracts_expired</key>
		<integer>0</integer>
		<key>contracts_fulfilled</key>
		<integer>0</integer>
		<key>contracts_unknown</key>
		<integer>70</integer>
		<key>parcels_expired</key>
		<integer>0</integer>
		<key>parcels_fulfilled</key>
		<integer>1</integer>
		<key>parcels_unknown</key>
		<integer>69</integer>
		<key>passage_expired</key>
		<integer>0</integer>
		<key>passage_fulfilled</key>
		<integer>2</integer>
		<key>passage_unknown</key>
		<integer>68</integer>
	</dict>
	<key>role_system_memory</key>                    <---- List of systems most recent systems visited (max of 32 entries)
	<array>
		<integer>175</integer>
		<integer>216</integer>
		<integer>119</integer>
		<integer>176</integer>
	</array>
	<key>role_weight_flags</key>                     <---- List of activities the player has done in the current system
	<dict>                                                 The more often the activities are performed, the more likely it will
		<key>bought-legal</key>                        result in a change to role_weights
		<integer>1</integer>
	</dict>
	<key>role_weights</key>                           <---- List of roles that the player has accumulated by doing various activities
	<array>                                                 NPC AI's will pick a random one from this list when making some decisions
		<string>trader</string>
		<string>player-unknown</string>
		<string>miner</string>
		<string>player-unknown</string>
		<string>trader-courier+</string>
		<string>player-unknown</string>
		<string>trader</string>
		<string>player-unknown</string>
	</array>
	<key>scenario_restriction</key>                    <---- Used by scenarios to stipulate what is excluded and what can be included
	<string>strict</string>
	<key>scripted_planetinfo_overrides</key>
	<dict/>
	<key>shipCommodityData</key>
	<array>
		<array>
			<string>food</string>
			<integer>0</integer>
		</array>
		<array>
			<string>textiles</string>
			<integer>14</integer>
		</array>
 			+ the rest of the commodities
	</array>
	<key>ship_class_name</key>
	<string>Cobra Mark III</string>
	<key>ship_clock</key>
	<real>180063403341.81989</real>
	<key>ship_desc</key>
	<string>cobra3-player</string>
	<key>ship_kills</key>
	<integer>50</integer>
	<key>ship_name</key>
	<string>Cobra Mark III</string>
	<key>ship_trade_in_factor</key>
	<integer>85</integer>
	<key>ship_unique_name</key>
	<string>Joy of Digebiti</string>
	<key>shipyard_record</key>
	<dict/>
	<key>speech_on</key>
	<integer>0</integer>
	<key>starboard_weapon</key>
	<string>EQ_WEAPON_NONE</string>
	<key>station_markets</key>
	<array>
		<dict>
			<key>market</key>
			<array>
				<array>
					<string>food</string>
					<integer>0</integer>
					<integer>57</integer>
				</array>
				<array>
					<string>textiles</string>
					<integer>0</integer>
					<integer>33</integer>
				</array>
				+ the rest of the commodities
			</array>
			<key>position</key>
			<array>
				<real>264588.65625</real>
				<real>-195215.625</real>
				<real>368296.9375</real>
			</array>
		</dict>
	</array>
	<key>subentities_status</key>
	<string></string>
	<key>system_id</key>
	<string>134</string>
	<key>target_id</key>
	<string>134</string>
	<key>trumbles</key>                                <---- The Trumbles just sit here until they are activated!
	<array>
		<integer>0</integer>
		<integer>10776</integer>
		<array>
			<dict>
				<key>digram</key>
				<string>ja</string>
				<key>discomfort</key>
				<real>0.0</real>
				<key>growth_rate</key>
				<real>0.0042457971721887589</real>
				<key>hunger</key>
				<real>0.0</real>
				<key>movement</key>
				<string>4.051147 10.144714</string>
				<key>position</key>
				<string>14.000000 -126.000000</string>
				<key>rotation</key>
				<real>5.8005518913269043</real>
				<key>rotational_velocity</key>
				<real>-1.3925930261611938</real>
				<key>size</key>
				<real>0.71881872415542603</real>
			</dict>
				+ another score or so of the blighters!
		</array>
	</array>
	<key>weapons_online</key>
	<true/>
	<key>wormholes</key>
	<array/>
	<key>written_by_version</key>
	<string>1.90</string>
</dict>
</plist>

Size!

For a "strict game" Jameson this can be c. 28-31 Kb.

OXPs can bulk this out massively. Chief culprits include Diplomancy, adding in the details of the history of the relationship between every solar system and its neighbours, Bounty System recording every bounty everywhere & Smugglers - a record of the galactic economy!

Note that the size of an OXP'd Jameson can be much, much larger than the original size of Classic Elite! 1-2 Mb with Diplomancy, Bounty System & Smugglers versus Classic Elite's 32k of memory!

Older versions

Saved games from Oolite v.1.77.1 and older include a key for the Galaxy Seeds, allowing Oolite to recreate a totally different set of 8 galaxies from scratch!