Scripters cove

Discussion and information relevant to creating special missions, new ships, skins etc.

Moderators: winston, another_commander

User avatar
Old Murgh
Wiki Wizard
Wiki Wizard
Posts: 640
Joined: Sat Dec 04, 2021 11:01 pm

Re: riffraff scripting

Post by Old Murgh »

montana05 wrote: Sat Mar 12, 2022 1:01 am
If you use a random number in the script you can make a ship(s) mainly appear in poor places. Please note that this script is based on key, not on role. The renovation_multiplier should be sufficient for more frequent maintenance. If you pm me more details, I will be happy to make a draft for you. :wink:
Aha. Key..
Great, thank you for coming to my aid.
I was young, I was naïve. [EliteWiki] Jonny Cuba made me do it!
User avatar
Cholmondely
Archivist
Archivist
Posts: 5365
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: Scripters cove

Post by Cholmondely »

How do I change text colour?

I found this:
cim wrote: Wed Jun 19, 2013 1:36 pm
spara wrote:
@JazHaz: To my understanding, text color can't be changed, it's always yellow in mission screen.
Yes. Choices can be non-yellow (have a look at the various contracts interfaces in 1.77) but there is a more fundamental limitation of the current UI code that all text on a particular line has to be the same colour.
And in the entrails of our wiki, this:
Global Settings

The following global colour settings are available

default_text_color
screen_title_color
screen_divider_color
selected_row_background_color
selected_row_color
text_input_cursor_color

These affect all GUI screens.

The majority of specific colour settings which are currently "yellowColor" do not have any internal value in Oolite and will use the default text colour.
and then, this

Colour settings
Each of these settings affects one particular display colour on a single GUI screen

interface_heading_color
interface_scroll_color
interface_entry_color
interface_description_color
interface_none_colorstatus_shipname_color
Both from https://wiki.alioth.net/index.php/Gui-settings.plist

But I'm just a dumb pilot. How do I do this -

Image




In

Code: Select all

this.showBar = function() {
mission.runScreen({
title: "The Local Bar",
screenID:"show_bar",
default_text_color =
message: expandDescription("[hints_bar_gossip]"),
overlay: "litf_bg_localbar.png", //This adds the bar image behind the message
exitScreen: "GUI_SCREEN_INTERFACES",  // will go back to the F4 screen rather than to the main screen
I've tried
default_text_color = redColor;
default_text_color = "redColor";
default_text_color = "1, 0, 0";
default_text_color = "1, 0, 0, 1";
with a resounding lack of success - each merely transmogrifies "Hints.oxp" into "Gobbledegook.£%&^!"

How do I make it work, and furthermore how do I produce something in multi-colour (red & yellow text) as shown above?



Reference: New Wiki page (WIP) for dumb pilots like myself: https://wiki.alioth.net/index.php/Mission_screen
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
phkb
Impressively Grand Sub-Admiral
Impressively Grand Sub-Admiral
Posts: 4830
Joined: Tue Jan 21, 2014 10:37 pm
Location: Writing more OXPs, because the world needs more OXPs.

Re: Scripters cove

Post by phkb »

Cholmondely wrote: Sun Apr 03, 2022 7:31 am
default_text_color = redColor;
The "default_text_color" is set in the gui-settings.plist file, not in the mission screen definition. And changing it in gui-settings would simply make all your text that colour, not specific lines.
Cholmondely wrote: Sun Apr 03, 2022 7:31 am
How do I make it work, and furthermore how do I produce something in multi-colour (red & yellow text) as shown above?
It is possible to make individual lines a specific colour, but you have to design your screens a little differently. Colours can be applied to the choices each mission screen has by using the "color:{colordefinition}" option on the definition. Obviously, in your specific case, you don't want the lines of text to be selectable by the player, but you can also make a choice unselectable by adding the option "unselectable:true" to the choice definition.

To make this work, though, there are other hurdles to jump. You would have to build your screen of text line by line, taking into account with width of text (which would change based on the current font), and then include some way of notifying the code you want to change the colour at a particular point.

OK, big code dump incoming...

The following should work (and I've tested it to confirm):
Add the following code to your Hints_Station_Bar.js:

Code: Select all

//-------------------------------------------------------------------------------------------------------------
this.processText = function (text) {
    var final = [];
    var colors = [];
    var columnWidth = 32; // this is the maximum display width available
    var paras = text.split("\n");
    var color = "";
    for (var i = 0; i < paras.length; i++) {
        var line = "";
        // special case for a blank line
        if (paras[i].length == 0 && i < paras.length - 1) {
            final.push("");
            colors.push(color);
            continue;
        }
        var words = paras[i].split(" ");
        for (var j = 0; j < words.length; j++) {
            // look for a colour change
            if (words[j].indexOf("{color:") >= 0) {
                // get the color deinition
                color = words[j].substring(words[j].indexOf("{color:") + 7, words[j].indexOf("}"));
                if (color == "reset") color = ""; // check for a reset to set the color back to the default
                // remove the color definition from the word
                words[j] = words[j].substring(0, words[j].indexOf("{color:")) + words[j].substring(words[j].indexOf("}") + 1);
            }
            // can we fit this word into the line?
            if (defaultFont.measureString(line + " " + words[j]) > columnWidth) {
                final.push(line); // put the current line into the final array
                colors.push(color);
                line = ""; // clear the text
            }
            line += (line.length == 0 ? "" : " ") + words[j];
        }
        if (line.trim() != "") {
            final.push(line); // make sure any leftovers are put into the array
            colors.push(color);
            line = "";
        }
    }
    // return all the data we compiled in a dictionary
    return {
        lines: final,
        colors: colors
    };
}

//-------------------------------------------------------------------------------------------------------------
// returns true if a HUD with allowBigGUI is enabled, otherwise false
this.$isBigGuiActive = function $isBigGuiActive() {
	if (oolite.compareVersion("1.83") <= 0) {
		return player.ship.hudAllowsBigGui;
	} else {
		var bigGuiHUD = ["XenonHUD.plist", "coluber_hud_ch01-dock.plist"]; // until there is a property we can check, I'll be listing HUD's that have the allow_big_gui property set here
		if (bigGuiHUD.indexOf(player.ship.hud) >= 0) {
			return true;
		} else {
			return false;
		}
	}
}
Then change the "this.showBar" function to look like this:

Code: Select all

this.showBar = function () {
    // grab the text from the descriptions
    var text = expandDescription("[hints_bar_gossip]");
    var breakdown = this.processText(text);

    var defaultColor = "yellowColor";
    var displayLines = 26;
    if (this.$isBigGuiActive() == false) displayLines = 20;
    var choices = {};
    
    // add the text lines to the choices dictionary
    for (var i = 0; i < breakdown.lines.length; i++) {
        choices["line_" + (i < 10 ? "0" : "") + i.toString()] = {
            text: breakdown.lines[i],
            alignment: "LEFT",
            color: (breakdown.colors[i] == "" ? defaultColor : breakdown.colors[i]),
            unselectable: true
        }
    }
    // add some spacers to push the text to the top of the screen
    for (var i = 0; i < displayLines - breakdown.lines.length; i++) {
        choices["spacer" + i] = {
            text: "",
            unselectable: true
        }
    }
    // add a final choice to inform the player what to do next
    choices["z_end"] = {
        text: "Press enter to continue"
    }

    mission.runScreen({
        title: "The Local Bar",
        screenID: "show_bar",
        exitScreen: "GUI+SCREEN_INTERFACES",
        choices: choices,
        overlay: "litf_bg_localbar.png", //This adds the bar image behind the message
    })
}
And you're done. If you run this as is, you shouldn't see any differences in the text displayed. But, you can now add colour definitions to your descriptions like this:

Code: Select all

    "Success in combat needs a lot of preparation. Personally, I meditate every morning and then take a bubblebath. I find that that makes all the difference.\n\n{color:redColor}Yeah, you could use a bath right now, Calvin Clean.",
Some rules for use:
1. The color can only be applied per line, not per word. So, attempting something like this:

Code: Select all

    "This {color:greenColor}is {color:orangeColor}a {color:purpleColor}test",
isn't going to make those individual words different colors. In this example, the result will be a purple line that reads "This is a test". You best bet is to put the color definition immediately after a "\n".
2. Once you change the color, every line that comes after it will have that color, until you either change the color again, or use "{color:reset}" to reset the colour back to default.
3. The color definition can not have any spaces in it. If you want to use an rgb definition do it like this "{color:(1,0,0)}". I know you probably don't know what an rgb definition is, but for clarity it refers to color definition system that uses a decimal value to represent the red, green and blue (hence, RGB) values of the desired color. So, (1,0,0) is a color where the red component is fully on, while the green and blue values are fully off, which results in a red color (and is the equivalent of "redColor" in Oolite). (1,1,1) would be white, (0.5,0.5,0.5) would be a shade of grey, and (0,0,0) would be black.
4. The named colors you can use are the same for the rest of Oolite: blackColor, darkGrayColor, lightGrayColor, whiteColor, grayColor, redColor, greenColor, blueColor, cyanColor, yellowColor, magentaColor, orangeColor, purpleColor and brownColor.

Let me know how it goes.

Edit: Fixed small but code-breaking bug, and put the exitScreen option into the runScreen code.
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: Scripters cove

Post by montana05 »

Took some time, but this version of an individual shipyard is pretty flexible. I am not completely satisfied because I would like to add some additional information for upgraded lasers and I still need to increase the performance, currently too many times I get a timeout.

However, the following example is in a ship-script, attached to the station, a world-script probably would make more sense:

this.shipSpawned:

Code: Select all

this.shipSpawned = function(ship)
{
    // copies all installed ships with role player to a local array and checks if they are valid
    // depending on the defined criteria a pool of available ships for the yard is created
    // Warning: The choice in the yard will depend on your installed OXP's, with the plain core-game only the Fer de Lance is available
    const $playerShips_array = Ship.keysForRole("player");
       
   this.$yardShips_array = [];

    for(var i = $playerShips_array.length - 1 ; i >= 0 ; --i)
    {
        if(Ship.shipDataForKey($playerShips_array[i]) == null || !Ship.shipDataForKey($playerShips_array[i])._oo_shipyard)
        {
            log(this.name, $playerShips_array[i] + " is not a valid player ship, shipdata and/or shipyard entry is missing.");
        }
        else
        {
            if(($playerShips_array[i].search(/ferdelance/i) !== -1 && $playerShips_array[i].search(/carrier/i) === -1) || 
                $playerShips_array[i].search(/fer_de_lance/i) !== -1 || $playerShips_array[i].search(/ophidian/i) !== -1 || 
                $playerShips_array[i].search(/mussurana/i) !== -1 || $playerShips_array[i].search(/galaxy_liner/i) !== -1 || 
                $playerShips_array[i].search(/heart_of_gold/i) !== -1 || $playerShips_array[i].search(/JadeShadow/i) !== -1 ||
                $playerShips_array[i].search(/jade_shadow/i) !== -1)
            {
                $yardShips_array.push($playerShips_array[i]);
                log(this.name, "Nuit-keysForRole: ", $playerShips_array[i]);
            };
        };        
    };

    if(this.ship.shipyard.length > 0)
    {
        for(var i = this.ship.shipyard.length - 1 ; i >= 0 ; --i)
        {
            this.ship.removeShipFromShipyard(i);
            this.$addYardShip();
        };
    };
 };
 
function called from this.shipSpawned:

Code: Select all

this.$addYardShip = function()
{
     var yardShip = 
    this.$yardShips_array[Math.floor(Math.random() * this.$yardShips_array.length)];
     
    var shipData = Ship.shipDataForKey(yardShip);  // shipdata.plist, the upper case S at ship is a must !
    var shipEquip = shipData._oo_shipyard;  // shipyard.plist
        
    const stdEquip = shipEquip.standard_equipment.extras;  // in shipyard included extras

    // in case no extra equpment is available
    if(stdEquip.length == 0)
    {
       stdEquip = ["EQ_HEAT_SHIELD"];
    };    

    var optEquip = shipEquip.optional_equipment;
    var shipName = shipData.name;
    var shipPrice = Number(shipEquip.price);
    
    const $optEquip_array = [];
    
    // checks the optional equipment and builds an array of possible additons 
    // excluded: already installed equipment, more passenger berth, pulse and mining lasers
    for(var i = optEquip.length - 1 ; i >= 0 ; --i)
    {
        if(stdEquip.indexOf(optEquip[i]) < 0 && optEquip[i] != "EQ_WEAPON_PULSE_LASER" && optEquip[i] != "EQ_WEAPON_MINING_LASER")
        {
            $optEquip_array.push(optEquip[i]);
            log(this.name, "NUIT-0A2A-2", optEquip[i], optEquip.length);
            log(this.name, "NUIT-0A2A-3", $optEquip_array.length);
        };    
    };

    // 33% chance to add between 1 and 3 extra equipment
    var count = this.$getRndInteger(1, 9);
    var shortDes = shipName + ": Standard customer model. Price: " + shipPrice;
    var upPrice = 0;
    
    if(count < 4)
    {
        if(count > $optEquip_array.length)
        {
            count = $optEquip_array.length;
        };
        
        shortDes = shipName + ": Extra equipment installed: ";
        while(count > 0) 
	{
			stdEquip.push($optEquip_array[0]);  // adds the first element of the array to the extra equipment
            
            if(count == 1)
            {
                shortDes += EquipmentInfo.infoForKey($optEquip_array[0]).name + ".";
            }
            else
            {
                shortDes += EquipmentInfo.infoForKey($optEquip_array[0]).name + ", ";
            };

            upPrice = Number((EquipmentInfo.infoForKey($optEquip_array[0]).price/15));  // price from equipment.plist/10 plus some discount
            shipPrice = shipPrice + upPrice;  // costs of extra equipment is added to the ship price

            $optEquip_array.shift();  // removes the first element of the array, using delete will leave a hole in the index
                 
            for(let i = $optEquip_array.length - 1 ; i > 0 ; --i)  // random sort of the array
            {
                let j = Math.floor(Math.random() * i)
                let k = $optEquip_array[i]
                $optEquip_array[i] = $optEquip_array[j]
                $optEquip_array[j] = k
            }; 
            
            count -= 1;
    };

        shortDes += " Price: " + formatCredits(shipPrice, false, true);
    };
      
    this.ship.addShipToShipyard
    (
        { 
            shipdata_key: yardShip,
            Price: " + formatCredits(shipPrice, false, true) + ".", 
            short_description: shortDes, 
            extras: stdEquip, 
            price: shipPrice,
            personality: Math.floor(Math.random() * 32768) 
        }
    );
};
 
Every suggestion for improvement or to correct errors is welcome. :D
Scars remind us where we've been. They don't have to dictate where we're going.
cag
Deadly
Deadly
Posts: 202
Joined: Fri Mar 17, 2017 1:49 am

Re: Scripters cove

Post by cag »

<pm>
"Better to be thought a fool, boy, than to open your trap and remove all doubt." - Grandma [over time, just "Shut your trap... fool"]
"The only stupid questions are the ones you fail to ask." - Dad
How do I...? Nevermind.
User avatar
Slartibartfast
Deadly
Deadly
Posts: 175
Joined: Mon Jan 21, 2008 3:54 pm

Re: Scripters cove

Post by Slartibartfast »

hello

... a very simple question ( i am "new" )

most of *.plist (openstep) begin with

Code: Select all

{
	//  ****************************************************************************
	//  *                             blah blah blah blah                          *
	//  *                    blah blah blah blah blah blah blah blah               *
	//  ****************************************************************************

- first line the "{"
- then the "comments"

Is it it problem to do that the other way round? ( comment first then the "{" )
-- my (linux) editors are working much better with this order
-- oolite-linux also works without problems

but for mac or pc --- i don't know

matthias
Oolite 1.91 / Imp. Trader ( slighly modified :wink: ) on Lubuntu 22.04 LTS on AMD64 2x 3800+ ,
ATI Radeon R7240 XFS / Samsung TV 40" 1080p
C-Media CMI8738 / Yamaha RX-V575 / DIY-Speaker
Logitech Attack3 & standard german keyboard
User avatar
Cholmondely
Archivist
Archivist
Posts: 5365
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: Scripters cove

Post by Cholmondely »

Slartibartfast wrote: Mon Apr 25, 2022 2:02 pm
hello

... a very simple question ( i am "new" )

most of *.plist (openstep) begin with

Code: Select all

{
	//  ****************************************************************************
	//  *                             blah blah blah blah                          *
	//  *                    blah blah blah blah blah blah blah blah               *
	//  ****************************************************************************

- first line the "{"
- then the "comments"

Is it it problem to do that the other way round? ( comment first then the "{" )
-- my (linux) editors are working much better with this order
-- oolite-linux also works without problems

but for mac or pc --- i don't know

matthias
Just tried this on my AppleMac:

Code: Select all

	//  ****************************************************************************
	//  *                              Isis Interstellar                           *
	//  *                    all credits to Killer Wolf and Griff	               *
	//  *                 updated version of the Nuit Space Station                *
	//  ****************************************************************************
{
No problems with it!

I've not tried anything else, though.
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
Slartibartfast
Deadly
Deadly
Posts: 175
Joined: Mon Jan 21, 2008 3:54 pm

Re: Scripters cove

Post by Slartibartfast »

Hello Cholmondely

thx!
i think my biggest fear is gone ( if Linux && Mac works -- imho M$ should not be a problem )

-- with the "other way round: "syntax-highlighting" works without further work.

matthias
Oolite 1.91 / Imp. Trader ( slighly modified :wink: ) on Lubuntu 22.04 LTS on AMD64 2x 3800+ ,
ATI Radeon R7240 XFS / Samsung TV 40" 1080p
C-Media CMI8738 / Yamaha RX-V575 / DIY-Speaker
Logitech Attack3 & standard german keyboard
User avatar
Slartibartfast
Deadly
Deadly
Posts: 175
Joined: Mon Jan 21, 2008 3:54 pm

Re: Scripters cove / nexr newbe question

Post by Slartibartfast »

hi

i often see definitions for "size" ( or similar)
like this ( real numbers )
abc = 12.34567

==> 7 positions ( i hope this is is the correct translation / from german )

-- isn't it very oversized?

the ratio
12.34567 to 12.234568 makes ~ 0,00001% ( if i count the "0" right )

so for fx.1m it is ~10 µm ( again the problem with counting "0" )

now my question -- is there any reason (that i can't see) for this?

matthias
Oolite 1.91 / Imp. Trader ( slighly modified :wink: ) on Lubuntu 22.04 LTS on AMD64 2x 3800+ ,
ATI Radeon R7240 XFS / Samsung TV 40" 1080p
C-Media CMI8738 / Yamaha RX-V575 / DIY-Speaker
Logitech Attack3 & standard german keyboard
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: Scripters cove / nexr newbe question

Post by montana05 »

Slartibartfast wrote: Tue Apr 26, 2022 11:38 pm
hi

i often see definitions for "size" ( or similar)
like this ( real numbers )
abc = 12.34567

==> 7 positions ( i hope this is is the correct translation / from german )

-- isn't it very oversized?

the ratio
12.34567 to 12.234568 makes ~ 0,00001% ( if i count the "0" right )

so for fx.1m it is ~10 µm ( again the problem with counting "0" )

now my question -- is there any reason (that i can't see) for this?

matthias
In my experience, except for "model_scale_factor" usually 2 after the comma are enough. Most of the time I just round them. Since I am far from being an expert with models, there might be reasons I missed.
Scars remind us where we've been. They don't have to dictate where we're going.
User avatar
Slartibartfast
Deadly
Deadly
Posts: 175
Joined: Mon Jan 21, 2008 3:54 pm

Re: Scripters cove

Post by Slartibartfast »

Hi
Most of the time I just round them.
O.K. -- i'll do the same ( except, when there is a subtraction - which i have not seen till now )

now i'll fly a few rounds with my Imp-Trader to make credits
( maybe once i have my own Rock-Hermit )

good night
matthias
Oolite 1.91 / Imp. Trader ( slighly modified :wink: ) on Lubuntu 22.04 LTS on AMD64 2x 3800+ ,
ATI Radeon R7240 XFS / Samsung TV 40" 1080p
C-Media CMI8738 / Yamaha RX-V575 / DIY-Speaker
Logitech Attack3 & standard german keyboard
User avatar
szaumix
Deadly
Deadly
Posts: 171
Joined: Sun Apr 24, 2022 4:23 am

Re: Scripters cove

Post by szaumix »

Hey fellas little quibble.
Newish to tinkering Oolite, I've got a lot of tweaks and pull-aparts going fine both in /Addons and /ManagedAddOns. But the process of a modified descriptions.plist in /Addons is having no effect. I tried various things and finally found that even if I (backed up and) flat-out deleted the original descriptions.plist and started a new game in Strict Mode it still had no effect; everything is read as original descriptions.plist and it's not being read from an OXP.

I conclude that the base descriptions.plist is incorporated into core Oolite and being read from there -- is this correct?
User avatar
phkb
Impressively Grand Sub-Admiral
Impressively Grand Sub-Admiral
Posts: 4830
Joined: Tue Jan 21, 2014 10:37 pm
Location: Writing more OXPs, because the world needs more OXPs.

Re: Scripters cove

Post by phkb »

szaum-ix wrote: Fri Apr 29, 2022 1:49 pm
Hey fellas little quibble.
Newish to tinkering Oolite, I've got a lot of tweaks and pull-aparts going fine both in /Addons and /ManagedAddOns. But the process of a modified descriptions.plist in /Addons is having no effect. I tried various things and finally found that even if I (backed up and) flat-out deleted the original descriptions.plist and started a new game in Strict Mode it still had no effect; everything is read as original descriptions.plist and it's not being read from an OXP.

I conclude that the base descriptions.plist is incorporated into core Oolite and being read from there -- is this correct?
Are you holding right-shift down as you launch the game until you see the spinning Cobra? It might be that the cache is not being refreshed, and doing this will force it to rebuild from scratch.
User avatar
szaumix
Deadly
Deadly
Posts: 171
Joined: Sun Apr 24, 2022 4:23 am

Re: Scripters cove

Post by szaumix »

phkb wrote: Fri Apr 29, 2022 1:54 pm
Are you holding right-shift down as you launch the game until you see the spinning Cobra? It might be that the cache is not being refreshed, and doing this will force it to rebuild from scratch.
[EDIT:] Apologies, replied to this but then accidentally edited and erased it instead of posting a second time.
The first reply said yes I have been, I was able to register changes to other files but not to descriptions.

------------------------------------------------

Actually scratch that I just figured a test that worked but the core problem remains, it's just changed.

I modified the main menu and Descriptions.plist did indeed change. But I've been trying to achieve parcel descriptor, world descriptor, inhabitant descriptor changes etc. So just certain inputs are being read from someone else -- or I am modifying the wrong place. Even in strict mode I am not registering changes. Example:

LINE 1917:
// 1:2:9
"passenger-description-risk2" = ("[passenger-description-dangerous]","[passenger-description-dangerous]","[passenger-description-dangerous]","[passenger-description-dangerous]","[passenger-description-dangerous]","[passenger-description-dangerous]","[passenger-description-dangerous]","[passenger-description-dangerous]","[passenger-description-dangerous]","[passenger-description-cautious]","[passenger-description-cautious]","[passenger-description-safe]");

"parcel-label" = "[oolite-parcel-owner]'s [oolite-parcel-contents]";
"parcel-delivered-okay-@-@" = "You deliver %@, and are paid %@.\n";
"parcel-delivered-late-@-@" = "You have arrived late to deliver %@, and are only paid %@.\n";
"parcel-failed-@" = "You have failed to deliver %@ on time, and will not be paid.\n";
"parcel-description-safe" =
(
"DICKS",
"DICKS",
"DICKS",
"DICKS",
"DICKS"
);
"parcel-description-cautious" =
(
"DICKS",
"DICKS",
"DICKS",
"DICKS",
"DICKS"
);
"parcel-description-dangerous" =
(
"DICKS",
"DICKS",
"DICKS",
"DICKS",
"DICKS"
);


Despite this, parcels are still coming up as mud hockey and such, even in brand new games. (Sorry for the french, that's just my coding mnemonic since forever so I can easily find it if I ever forget to change code back).
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6683
Joined: Wed Feb 28, 2007 7:54 am

Re: Scripters cove

Post by another_commander »

Hold Shift down while starting the game and your changes will take effect. Alternatively, check always-flush-cache in this page: https://wiki.alioth.net/index.php/Hidde ... _in_Oolite

Also, tweaking stuff inside ManagedAddons is not recommended. There is a reason this folder is buried deep inside the folder structure and this is that users should not be fiddling directly with it. If you must make modifications no matter what, the proper way to do it is to list installed oxps in the Expansion Manager, select the one you want and press "x" to extract it to the AddOns folder. It will be extracted with the ".off" extension. Change that to ".oxp" and you are good to go
Post Reply