Different expansions for different saved games.
Moderators: winston, another_commander
- ffutures
- ---- E L I T E ----
- Posts: 2173
- Joined: Wed Dec 04, 2013 12:34 pm
- Location: London, UK
- Contact:
Different expansions for different saved games.
I suspect that this would be a total sod to implement, but I might as well mention it... Is there any way that each saved game could OPTIONALLY disable some of the installed add-ons?
One of the niggles I have with a lot of Oolite expansions is that they apply universally - once they're loaded, they'll be in the background for all the games I play. Which is fine if it's something like a bit of equipment, I can decide whether or not I want to use it, not so good for things like missions and add-ons that add extra threats. For example, I currently have Thargoid Wars and all of the add-on Thargoid ships installed - if I wanted to let my grand nephew (aged 7) play with a chance of surviving I'd have to remove all of them, and that's a pain. Or I might want to play with one of the special ships (e.g. Andromeda) but don't really want them turning up as NPC ships - they're bastards to fight and impossible to run away from.
I have no idea how this could be done, if it can at all, but I think it might occasionally be useful.
One of the niggles I have with a lot of Oolite expansions is that they apply universally - once they're loaded, they'll be in the background for all the games I play. Which is fine if it's something like a bit of equipment, I can decide whether or not I want to use it, not so good for things like missions and add-ons that add extra threats. For example, I currently have Thargoid Wars and all of the add-on Thargoid ships installed - if I wanted to let my grand nephew (aged 7) play with a chance of surviving I'd have to remove all of them, and that's a pain. Or I might want to play with one of the special ships (e.g. Andromeda) but don't really want them turning up as NPC ships - they're bastards to fight and impossible to run away from.
I have no idea how this could be done, if it can at all, but I think it might occasionally be useful.
Re: Different expansions for different saved games.
The OXP restrictions described at [wiki]Scenarios.plist[/wiki] are what you need for this, though it currently only works in nightly builds.ffutures wrote:For example, I currently have Thargoid Wars and all of the add-on Thargoid ships installed - if I wanted to let my grand nephew (aged 7) play with a chance of surviving I'd have to remove all of them, and that's a pain.
Create a savegame that's got
Code: Select all
<key>scenario_restriction</key>
<string>id:oxp.ffutures.custom-oxp-settings-1</string>
Then create an OXP folder which only contains a
manifest.plist
file, which has the id oxp.ffutures.custom-oxp-settings-1
, has a requires_oxps
section that includes exactly the ID of every OXP you want to include (this might be quite long, potentially).Then, when you load the save game, the OXPs will be restricted to your custom OXP only ... and whichever OXPs you specified in its
requires_oxps
list (and anything in their requires_oxps
list, so they'll continue to load)Bonus feature: actually make the edited save game into a scenario as described in the Wiki, so you can start several copies of it from the "Start New Commander" screen.
You could alternatively do this without a custom OXP, by using a longer
scenario_restriction
in the save game like this
Code: Select all
<key>scenario_restriction</key>
<string>id:oxp.author1.oxp1;id:oxp.author1.oxp2;id:oxp.author2.oxp7;...</string>
In 1.80, the solution is probably to use the multiple user account feature of your operating system to give your grand nephew their own account, install Oolite on that account as well, and only install suitable OXPs.
This isn't something the core game can handle as the player ship and the NPC ships are usually [1] defined in the same OXP. The easiest solution if you want it as a player ship but not an NPC ship is to edit theffutures wrote:Or I might want to play with one of the special ships (e.g. Andromeda) but don't really want them turning up as NPC ships - they're bastards to fight and impossible to run away from.
shipdata.plist
file in the OXP and comment out the NPC variants.[1] I think this may in fact be "always". Splitting a ship OXP into three parts (common resources, NPC definitions, player ship definitions) is such a pain even with automatic dependency management that I don't recall anyone ever doing it.
- Norby
- ---- E L I T E ----
- Posts: 2577
- Joined: Mon May 20, 2013 9:53 pm
- Location: Budapest, Hungary (Mainly Agricultural Democracy, TL10)
- Contact:
Re: Different expansions for different saved games.
My problem is not the pain but my will. Yes, Andromeda is a strong ship but pirate versions are rare (below 1%) and you can outrun it in any ship with more than 250 max.speed so I think better if the official version keep up some stress.cim wrote:Splitting a ship OXP into three parts (common resources, NPC definitions, player ship definitions) is such a pain
- ffutures
- ---- E L I T E ----
- Posts: 2173
- Joined: Wed Dec 04, 2013 12:34 pm
- Location: London, UK
- Contact:
Re: Different expansions for different saved games.
I'm thinking more in terms of something that can be done without manually editing files - e.g., something like a built-in saved game editor that gives you a list of the installed add-ons and allows you to disable any of them for that saved game (or for a new pilot) - something between the default "use all add-ons" and the "Strict Elite" settings.
- Norby
- ---- E L I T E ----
- Posts: 2577
- Joined: Mon May 20, 2013 9:53 pm
- Location: Budapest, Hungary (Mainly Agricultural Democracy, TL10)
- Contact:
Re: Different expansions for different saved games.
In Windows everything is in one folder so just copy the whole Oolite folder to a new OoliteForKid folder and remove all unwanted oxp/oxz.
In Linux make another username, install Oolite into the home directory and get the wanted oxps only.
In Linux make another username, install Oolite into the home directory and get the wanted oxps only.
- Fatleaf
- Intergalactic Spam Assassin
- Posts: 1988
- Joined: Tue Jun 08, 2010 5:11 am
- Location: In analysis mode on Phaelon
- Contact:
Re: Different expansions for different saved games.
I just have two copies of Oolite installed. One is called Testing the other is just Oolite.
Find out about the early influences of Fatleaf here. Also his OXP's!
Holds the Ooniversal record for "Thread Necromancy"
Holds the Ooniversal record for "Thread Necromancy"
- Smivs
- Retired Assassin
- Posts: 8408
- Joined: Tue Feb 09, 2010 11:31 am
- Location: Lost in space
- Contact:
Re: Different expansions for different saved games.
I used to have several 'AddOns' folders for various Commanders, and just moved them in and out as I needed to change them - I'd just drag and drop them into and out of Oolite to/from a store in my Documents folder.
This is still do-able with Managed addOns as well, although it does make extra work if you use both OXZs and OXPs. Perhaps for convenience convert OXZs to OXPs and then you could just use inter-changeable AddOns folders, leaving the Managed AddOns folder un-used.
This is still do-able with Managed addOns as well, although it does make extra work if you use both OXZs and OXPs. Perhaps for convenience convert OXZs to OXPs and then you could just use inter-changeable AddOns folders, leaving the Managed AddOns folder un-used.
Commander Smivs, the friendliest Gourd this side of Riedquat.
Re: Different expansions for different saved games.
You can put OXZs in your AddOns folder.Smivs wrote:This is still do-able with Managed addOns as well, although it does make extra work if you use both OXZs and OXPs. Perhaps for convenience convert OXZs to OXPs and then you could just use inter-changeable AddOns folders, leaving the Managed AddOns folder un-used.
- Smivs
- Retired Assassin
- Posts: 8408
- Joined: Tue Feb 09, 2010 11:31 am
- Location: Lost in space
- Contact:
Re: Different expansions for different saved games.
...or do thatcim wrote:You can put OXZs in your AddOns folder.Smivs wrote:This is still do-able with Managed addOns as well, although it does make extra work if you use both OXZs and OXPs. Perhaps for convenience convert OXZs to OXPs and then you could just use inter-changeable AddOns folders, leaving the Managed AddOns folder un-used.
Commander Smivs, the friendliest Gourd this side of Riedquat.
- Cody
- Sharp Shooter Spam Assassin
- Posts: 16081
- Joined: Sat Jul 04, 2009 9:31 pm
- Location: The Lizard's Claw
- Contact:
Re: Different expansions for different saved games.
This works! On my old machine, I had three different builds installed (one of which had a choice ofFatleaf wrote:I just have two copies of Oolite installed. One is called Testing the other is just Oolite.
.exe
).I would advise stilts for the quagmires, and camels for the snowy hills
And any survivors, their debts I will certainly pay. There's always a way!
And any survivors, their debts I will certainly pay. There's always a way!
-
- Quite Grand Sub-Admiral
- Posts: 6683
- Joined: Wed Feb 28, 2007 7:54 am
Re: Different expansions for different saved games.
My standard multi-version practice is: One game folder, with one AddOns folder, and three or more oolite.app folders below it (each with their own name of course).
In the above shot, I have four versions of the game sharing the same OXPs (1.80, trunk 32 bit, trunk 64 bit and oo64 which is a free-to-experiment version - the others are the git repository copy plus some utility folders). 1.80 contains both the deployment and test release executables. Switching versions is really easy this way.
Now, if I want to have different OXP setups too, I can add other OXP container folders and call them AddOns1, AddOns2 etc. When I want to switch OXP set, I just rename the appropriate folder to AddOns and run the game.
Combining the multi version with the multi AddOns setup can make testing very quick and easy. Maybe it is too much for a casual player, but the possibility is there for whoever would like to try it.
In the above shot, I have four versions of the game sharing the same OXPs (1.80, trunk 32 bit, trunk 64 bit and oo64 which is a free-to-experiment version - the others are the git repository copy plus some utility folders). 1.80 contains both the deployment and test release executables. Switching versions is really easy this way.
Now, if I want to have different OXP setups too, I can add other OXP container folders and call them AddOns1, AddOns2 etc. When I want to switch OXP set, I just rename the appropriate folder to AddOns and run the game.
Combining the multi version with the multi AddOns setup can make testing very quick and easy. Maybe it is too much for a casual player, but the possibility is there for whoever would like to try it.
- ffutures
- ---- E L I T E ----
- Posts: 2173
- Joined: Wed Dec 04, 2013 12:34 pm
- Location: London, UK
- Contact:
Re: Different expansions for different saved games.
It's mostly the casual player I'm thinking of here - I'd guess they're mostly using the OXZ addons that are offered by the game, and installing them is a much less transparent process than OXPs.
- PhantorGorth
- ---- E L I T E ----
- Posts: 647
- Joined: Wed May 20, 2009 6:48 pm
- Location: Somewhere off the top left of Galaxy 1 map
Re: Different expansions for different saved games.
Another method is the one I used use to switch between different testing set-ups and normal playing.
As a Linux user I can use symbolic links via the "ln -s <source_folder> <new_folder>" command to link a folder to somewhere else at the same time as its true location. You can use this for the Addons folder the Managed Addons folder and the save games folder. To use create sets of these folders under a different folders and then have a script check which one is links and "rotate" the links to the next set.
Here is the script I used for the Addons folder only:
This script would need to be modified to use your folders, add the other folders in the set if you want to do a swap for the Managed Addons folder and Save Games folders as well, and modify the script to make the cycle match the number of sets you have. (I have three in the above example)
It could also be extended to a launch a menu allowing you to choose the set to use rather than cycle through them, which would also allow you add a call to launch Oolite itself. (Which is not done in my script as I didn't automatically want to launch Oolite for the next folder in the cycle. Though that would be fine for just 2 sets in the cycle.)
As I am using Unix style symbolic links this would probably work on OSX too. Windows would need something that did links in the same way as Shortcuts won't work for this.
Phantor
As a Linux user I can use symbolic links via the "ln -s <source_folder> <new_folder>" command to link a folder to somewhere else at the same time as its true location. You can use this for the Addons folder the Managed Addons folder and the save games folder. To use create sets of these folders under a different folders and then have a script check which one is links and "rotate" the links to the next set.
Here is the script I used for the Addons folder only:
Code: Select all
#!/bin/bash
# MIT License:
#
# Copyright (c) 2011 Paul R. Cooper
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in
# the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
# Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
# OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
VAR=`ls -l ~/.Oolite/ | egrep '^l' | gawk '{ print $10 }' | head -n 1`
if [ $VAR = "/usr/lib/Oolite/AddOns" ]; then
rm ~/.Oolite/AddOns
ln -s ~/Dev/Oolite/AddOns ~/.Oolite/AddOns
fi
if [ $VAR = "$HOME/Dev/Oolite/AddOns" ]; then
rm ~/.Oolite/AddOns
ln -s ~/Dev/Testing/AddOns ~/.Oolite/AddOns
fi
if [ $VAR = "$HOME/Dev/Testing/AddOns" ]; then
rm ~/.Oolite/AddOns
ln -s /usr/lib/Oolite/AddOns ~/.Oolite/AddOns
fi
VAR=`ls -l ~/.Oolite/ | egrep '^l' | gawk '{ print $10 }' | head -n 1`
echo Oolite Addons folder now points at $VAR
It could also be extended to a launch a menu allowing you to choose the set to use rather than cycle through them, which would also allow you add a call to launch Oolite itself. (Which is not done in my script as I didn't automatically want to launch Oolite for the next folder in the cycle. Though that would be fine for just 2 sets in the cycle.)
As I am using Unix style symbolic links this would probably work on OSX too. Windows would need something that did links in the same way as Shortcuts won't work for this.
Phantor
Chat and relax with other commanders in the [url=irc://irc.oftc.net/oolite]DS's Seedy Space Bar[/url]. The Coolest Bar in the Eight.
Phantor's OXPs: GalCop Rewards and Safe Docking
Phantor's OXPs: GalCop Rewards and Safe Docking
- Diziet Sma
- ---- E L I T E ----
- Posts: 6312
- Joined: Mon Apr 06, 2009 12:20 pm
- Location: Aboard the Pitviper S.E. "Blackwidow"
Re: Different expansions for different saved games.
I have something similar on Linux.. with a short Bash script to switch between two AddOns folders.. I just type 'swapaddons' in a terminal, and they switch around. Something similar could probably be done with Windows. Details are here: https://bb.oolite.space/viewtopic.ph ... 75#p193275another_commander wrote:Now, if I want to have different OXP setups too, I can add other OXP container folders and call them AddOns1, AddOns2 etc. When I want to switch OXP set, I just rename the appropriate folder to AddOns and run the game.
Windows has had symlinking capabilities ever since Vista. There's a discussion about using them with Oolite here: https://bb.oolite.space/viewtopic.php?f=8&t=15524PhantorGorth wrote:As I am using Unix style symbolic links this would probably work on OSX too. Windows would need something that did links in the same way as Shortcuts won't work for this.
Most games have some sort of paddling-pool-and-water-wings beginning to ease you in: Oolite takes the rather more Darwinian approach of heaving you straight into the ocean, often with a brick or two in your pockets for luck. ~ Disembodied