A bug. No idea how it got there! Oh well. New version of Black Market is out which fixes that issue.Cholmondely wrote: ↑Wed Oct 18, 2023 4:26 pmMy F7 screen now adds in that I have a waypoint to one rock hermit in Zaenza and seemingly to two in Lasazo.
Smugglers - The Galactic Underworld & Black Markets
Moderators: another_commander, winston
- phkb
- Impressively Grand Sub-Admiral

- Posts: 5624
- Joined: Tue Jan 21, 2014 10:37 pm
- Location: Writing more OXPs, because the world needs more OXPs.
Re: (Release) Smugglers - The Galactic Underworld
-
crochambeau
- Poor

- Posts: 6
- Joined: Thu Sep 29, 2011 1:20 pm
Re: Smugglers - The Galactic Underworld & Black Markets
Deepest apologies if this has been covered and I'm too dense to have seen it.
In smugglers F6 chart icons employ the orange diamond icon to indicate a no firearm import system. My "vanilla" galaxy map also employs the orange diamond icon to indicate a contract passenger destination (not a lozenge, so far as my eyes can tell). This overlap has caused me a few headaches, as I'm running a fairly big ship (Takina Class) with a bunch of compartments and try to do mass transit runs along a route.
I've overlooked a few connections due to this, and it can turn into logistical issues that erode my reputation.
Is there a modified chart screen that I can manually adjust how subject icons are displayed? Or a chart screen I can assign my path in a way that remains visible? Or a nudge toward the best place to learn how to start tinkering on my build?
In smugglers F6 chart icons employ the orange diamond icon to indicate a no firearm import system. My "vanilla" galaxy map also employs the orange diamond icon to indicate a contract passenger destination (not a lozenge, so far as my eyes can tell). This overlap has caused me a few headaches, as I'm running a fairly big ship (Takina Class) with a bunch of compartments and try to do mass transit runs along a route.
I've overlooked a few connections due to this, and it can turn into logistical issues that erode my reputation.
Is there a modified chart screen that I can manually adjust how subject icons are displayed? Or a chart screen I can assign my path in a way that remains visible? Or a nudge toward the best place to learn how to start tinkering on my build?
- Cholmondely
- Archivist

- Posts: 6563
- Joined: Tue Jul 07, 2020 11:00 am
- Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
- Contact:
Re: Smugglers - The Galactic Underworld & Black Markets
Here's the script.js file from Runghold's SecComFinder4GalacticNavy.oxpcrochambeau wrote: ↑Mon Dec 18, 2023 4:27 pmDeepest apologies if this has been covered and I'm too dense to have seen it.
In smugglers F6 chart icons employ the orange diamond icon to indicate a no firearm import system. My "vanilla" galaxy map also employs the orange diamond icon to indicate a contract passenger destination (not a lozenge, so far as my eyes can tell). This overlap has caused me a few headaches, as I'm running a fairly big ship (Takina Class) with a bunch of compartments and try to do mass transit runs along a route.
I've overlooked a few connections due to this, and it can turn into logistical issues that erode my reputation.
Is there a modified chart screen that I can manually adjust how subject icons are displayed? Or a chart screen I can assign my path in a way that remains visible? Or a nudge toward the best place to learn how to start tinkering on my build?
(This is the only part of his oxp which does anything: his requires.plist just tells Oolite what version of Oolite it needs to run).
To this dumb pilot, the start of the javascript file just seems to be about deletion, but after that you get into the meat.
markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" seems to be the sort of thing which you would want to tweak in the Smugglers oxz.Code: Select all
"use strict";
this.name = "SecComFinder4GalacticNavy";
this.author = "Runghold";
this.copyright = "2017 by Runghold";
this.licence = "no licence yet";
this.description = "Marks Systems with Navy SecCom Stations in the current Galaxy Chart";
this.version = "0.6.2";
this.startUpComplete = function () {
log(this.name, "Check for Galactic Navy OXP");
if (worldScripts.GalNavy) {
log(this.name, "Galactic Navy found :-)");
this.FuncGalaxyCheck();
}
else {
log(this.name, "Galactic Navy OXP not found!");
//Delete all 112(!) Markers if exist or not. ToDo: Check for missionVariable to delete just the 14 actual markers or even delete nothing if there is no missionVariable.
this.FuncUnMarkAll();
log(this.name, "Old Markers removed!");
//Delete the missionVariable
delete missionVariables.RungholdGalNavySecComStationsMarked
log(this.name, "missionVariable removed!");
//If you save your game after this, your save state is "cleaned" from SecComFinder
}
}
this.playerEnteredNewGalaxy = function () /*Changing the galaxy wastes all markers from the previous galaxy anyway.*/ {
if (worldScripts.GalNavy) {
log(this.name, "Galaxy changed!");
this.FuncGalaxyCheck();
}
}
this.FuncGalaxyCheck = function FuncGalaxyCheck() {
log("SecComFinder4GalacticNavy", "Galaxy Number is " + galaxyNumber);
if (galaxyNumber == 0) { this.FuncMarkGal_0(); }
if (galaxyNumber == 1) { this.FuncMarkGal_1(); }
if (galaxyNumber == 2) { this.FuncMarkGal_2(); }
if (galaxyNumber == 3) { this.FuncMarkGal_3(); }
if (galaxyNumber == 4) { this.FuncMarkGal_4(); }
if (galaxyNumber == 5) { this.FuncMarkGal_5(); }
if (galaxyNumber == 6) { this.FuncMarkGal_6(); }
if (galaxyNumber == 7) { this.FuncMarkGal_7(); }
missionVariables.RungholdGalNavySecComStationsMarked = "SYSTEMS_IN_GALAXY_" + galaxyNumber + "_MARKED";
log("SecComFinder4GalacticNavy", "Systems in Galaxy " + galaxyNumber + " marked!");
}
this.FuncMarkGal_0 = function FuncMarkGal_0() {
mission.markSystem
(
{ system: 24, name: "RungholdGalNavySecComStationG0St01", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 193, name: "RungholdGalNavySecComStationG0St02", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 154, name: "RungholdGalNavySecComStationG0St03", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 188, name: "RungholdGalNavySecComStationG0St04", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 125, name: "RungholdGalNavySecComStationG0St05", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 109, name: "RungholdGalNavySecComStationG0St06", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 249, name: "RungholdGalNavySecComStationG0St07", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 150, name: "RungholdGalNavySecComStationG0St08", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 80, name: "RungholdGalNavySecComStationG0St09", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 175, name: "RungholdGalNavySecComStationG0St10", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 120, name: "RungholdGalNavySecComStationG0St11", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 220, name: "RungholdGalNavySecComStationG0St12", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 158, name: "RungholdGalNavySecComStationG0St13", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 15, name: "RungholdGalNavySecComStationG0St14", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" }
);
}
this.FuncMarkGal_1 = function FuncMarkGal_1() {
mission.markSystem
(
{ system: 248, name: "RungholdGalNavySecComStationG1St01", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 135, name: "RungholdGalNavySecComStationG1St02", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 106, name: "RungholdGalNavySecComStationG1St03", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 82, name: "RungholdGalNavySecComStationG1St04", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 150, name: "RungholdGalNavySecComStationG1St05", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 182, name: "RungholdGalNavySecComStationG1St06", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 33, name: "RungholdGalNavySecComStationG1St07", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 48, name: "RungholdGalNavySecComStationG1St08", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 227, name: "RungholdGalNavySecComStationG1St09", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 96, name: "RungholdGalNavySecComStationG1St10", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 127, name: "RungholdGalNavySecComStationG1St11", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 202, name: "RungholdGalNavySecComStationG1St12", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 243, name: "RungholdGalNavySecComStationG1St13", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 170, name: "RungholdGalNavySecComStationG1St14", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" }
);
}
this.FuncMarkGal_2 = function FuncMarkGal_2() {
mission.markSystem
(
{ system: 31, name: "RungholdGalNavySecComStationG2St01", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 165, name: "RungholdGalNavySecComStationG2St02", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 245, name: "RungholdGalNavySecComStationG2St03", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 84, name: "RungholdGalNavySecComStationG2St04", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 36, name: "RungholdGalNavySecComStationG2St05", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 21, name: "RungholdGalNavySecComStationG2St06", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 26, name: "RungholdGalNavySecComStationG2St07", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 139, name: "RungholdGalNavySecComStationG2St08", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 251, name: "RungholdGalNavySecComStationG2St09", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 205, name: "RungholdGalNavySecComStationG2St10", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 223, name: "RungholdGalNavySecComStationG2St11", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 204, name: "RungholdGalNavySecComStationG2St12", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 17, name: "RungholdGalNavySecComStationG2St13", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 247, name: "RungholdGalNavySecComStationG2St14", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" }
);
}
this.FuncMarkGal_3 = function FuncMarkGal_3() {
mission.markSystem
(
{ system: 39, name: "RungholdGalNavySecComStationG3St01", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 221, name: "RungholdGalNavySecComStationG3St02", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 188, name: "RungholdGalNavySecComStationG3St03", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 86, name: "RungholdGalNavySecComStationG3St04", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 9, name: "RungholdGalNavySecComStationG3St05", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 57, name: "RungholdGalNavySecComStationG3St06", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 186, name: "RungholdGalNavySecComStationG3St07", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 237, name: "RungholdGalNavySecComStationG3St08", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 49, name: "RungholdGalNavySecComStationG3St09", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 103, name: "RungholdGalNavySecComStationG3St10", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 254, name: "RungholdGalNavySecComStationG3St11", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 66, name: "RungholdGalNavySecComStationG3St12", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 140, name: "RungholdGalNavySecComStationG3St13", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 110, name: "RungholdGalNavySecComStationG3St14", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" }
);
}
this.FuncMarkGal_4 = function FuncMarkGal_4() {
mission.markSystem
(
{ system: 249, name: "RungholdGalNavySecComStationG4St01", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 71, name: "RungholdGalNavySecComStationG4St02", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 57, name: "RungholdGalNavySecComStationG4St03", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 144, name: "RungholdGalNavySecComStationG4St04", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 198, name: "RungholdGalNavySecComStationG4St05", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 153, name: "RungholdGalNavySecComStationG4St06", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 204, name: "RungholdGalNavySecComStationG4St07", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 73, name: "RungholdGalNavySecComStationG4St08", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 102, name: "RungholdGalNavySecComStationG4St09", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 222, name: "RungholdGalNavySecComStationG4St10", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 29, name: "RungholdGalNavySecComStationG4St11", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 233, name: "RungholdGalNavySecComStationG4St12", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 152, name: "RungholdGalNavySecComStationG4St13", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 190, name: "RungholdGalNavySecComStationG4St14", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" }
);
}
this.FuncMarkGal_5 = function FuncMarkGal_5() {
mission.markSystem
(
{ system: 151, name: "RungholdGalNavySecComStationG5St01", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 227, name: "RungholdGalNavySecComStationG5St02", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 6, name: "RungholdGalNavySecComStationG5St03", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 51, name: "RungholdGalNavySecComStationG5St04", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 60, name: "RungholdGalNavySecComStationG5St05", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 129, name: "RungholdGalNavySecComStationG5St06", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 8, name: "RungholdGalNavySecComStationG5St07", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 53, name: "RungholdGalNavySecComStationG5St08", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 85, name: "RungholdGalNavySecComStationG5St09", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 120, name: "RungholdGalNavySecComStationG5St10", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 208, name: "RungholdGalNavySecComStationG5St11", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 220, name: "RungholdGalNavySecComStationG5St12", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 146, name: "RungholdGalNavySecComStationG5St13", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 66, name: "RungholdGalNavySecComStationG5St14", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" }
);
}
this.FuncMarkGal_6 = function FuncMarkGal_6() {
mission.markSystem
(
{ system: 214, name: "RungholdGalNavySecComStationG6St01", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 161, name: "RungholdGalNavySecComStationG6St02", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 250, name: "RungholdGalNavySecComStationG6St03", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 127, name: "RungholdGalNavySecComStationG6St04", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 23, name: "RungholdGalNavySecComStationG6St05", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 154, name: "RungholdGalNavySecComStationG6St06", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 234, name: "RungholdGalNavySecComStationG6St07", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 24, name: "RungholdGalNavySecComStationG6St08", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 55, name: "RungholdGalNavySecComStationG6St09", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 64, name: "RungholdGalNavySecComStationG6St10", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 231, name: "RungholdGalNavySecComStationG6St11", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 140, name: "RungholdGalNavySecComStationG6St12", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 202, name: "RungholdGalNavySecComStationG6St13", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 35, name: "RungholdGalNavySecComStationG6St14", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" }
);
}
this.FuncMarkGal_7 = function FuncMarkGal_7() {
mission.markSystem
(
{ system: 26, name: "RungholdGalNavySecComStationG7St01", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 218, name: "RungholdGalNavySecComStationG7St02", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 9, name: "RungholdGalNavySecComStationG7St03", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 174, name: "RungholdGalNavySecComStationG7St04", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 156, name: "RungholdGalNavySecComStationG7St05", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 251, name: "RungholdGalNavySecComStationG7St06", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 75, name: "RungholdGalNavySecComStationG7St07", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 136, name: "RungholdGalNavySecComStationG7St08", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 184, name: "RungholdGalNavySecComStationG7St09", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 87, name: "RungholdGalNavySecComStationG7St10", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 212, name: "RungholdGalNavySecComStationG7St11", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 116, name: "RungholdGalNavySecComStationG7St12", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 98, name: "RungholdGalNavySecComStationG7St13", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" },
{ system: 55, name: "RungholdGalNavySecComStationG7St14", markerColor: "cyanColor", markerScale: 1.5, markerShape: "MARKER_DIAMOND" }
);
}
this.FuncUnMarkAll = function FuncUnMarkAll() {
mission.unmarkSystem
(
//Galaxy 0
{ system: 24, name: "RungholdGalNavySecComStationG0St01" },
{ system: 193, name: "RungholdGalNavySecComStationG0St02" },
{ system: 154, name: "RungholdGalNavySecComStationG0St03" },
{ system: 188, name: "RungholdGalNavySecComStationG0St04" },
{ system: 125, name: "RungholdGalNavySecComStationG0St05" },
{ system: 109, name: "RungholdGalNavySecComStationG0St06" },
{ system: 249, name: "RungholdGalNavySecComStationG0St07" },
{ system: 150, name: "RungholdGalNavySecComStationG0St08" },
{ system: 80, name: "RungholdGalNavySecComStationG0St09" },
{ system: 175, name: "RungholdGalNavySecComStationG0St10" },
{ system: 120, name: "RungholdGalNavySecComStationG0St11" },
{ system: 220, name: "RungholdGalNavySecComStationG0St12" },
{ system: 158, name: "RungholdGalNavySecComStationG0St13" },
{ system: 15, name: "RungholdGalNavySecComStationG0St14" },
//Galaxy 1
{ system: 248, name: "RungholdGalNavySecComStationG1St01" },
{ system: 135, name: "RungholdGalNavySecComStationG1St02" },
{ system: 106, name: "RungholdGalNavySecComStationG1St03" },
{ system: 82, name: "RungholdGalNavySecComStationG1St04" },
{ system: 150, name: "RungholdGalNavySecComStationG1St05" },
{ system: 182, name: "RungholdGalNavySecComStationG1St06" },
{ system: 33, name: "RungholdGalNavySecComStationG1St07" },
{ system: 48, name: "RungholdGalNavySecComStationG1St08" },
{ system: 227, name: "RungholdGalNavySecComStationG1St09" },
{ system: 96, name: "RungholdGalNavySecComStationG1St10" },
{ system: 127, name: "RungholdGalNavySecComStationG1St11" },
{ system: 202, name: "RungholdGalNavySecComStationG1St12" },
{ system: 243, name: "RungholdGalNavySecComStationG1St13" },
{ system: 170, name: "RungholdGalNavySecComStationG1St14" },
//Galaxy 2
{ system: 31, name: "RungholdGalNavySecComStationG2St01" },
{ system: 165, name: "RungholdGalNavySecComStationG2St02" },
{ system: 245, name: "RungholdGalNavySecComStationG2St03" },
{ system: 84, name: "RungholdGalNavySecComStationG2St04" },
{ system: 36, name: "RungholdGalNavySecComStationG2St05" },
{ system: 21, name: "RungholdGalNavySecComStationG2St06" },
{ system: 26, name: "RungholdGalNavySecComStationG2St07" },
{ system: 139, name: "RungholdGalNavySecComStationG2St08" },
{ system: 251, name: "RungholdGalNavySecComStationG2St09" },
{ system: 205, name: "RungholdGalNavySecComStationG2St10" },
{ system: 223, name: "RungholdGalNavySecComStationG2St11" },
{ system: 204, name: "RungholdGalNavySecComStationG2St12" },
{ system: 17, name: "RungholdGalNavySecComStationG2St13" },
{ system: 247, name: "RungholdGalNavySecComStationG2St14" },
//Galaxy 3
{ system: 39, name: "RungholdGalNavySecComStationG3St01" },
{ system: 221, name: "RungholdGalNavySecComStationG3St02" },
{ system: 188, name: "RungholdGalNavySecComStationG3St03" },
{ system: 86, name: "RungholdGalNavySecComStationG3St04" },
{ system: 9, name: "RungholdGalNavySecComStationG3St05" },
{ system: 57, name: "RungholdGalNavySecComStationG3St06" },
{ system: 186, name: "RungholdGalNavySecComStationG3St07" },
{ system: 237, name: "RungholdGalNavySecComStationG3St08" },
{ system: 49, name: "RungholdGalNavySecComStationG3St09" },
{ system: 103, name: "RungholdGalNavySecComStationG3St10" },
{ system: 254, name: "RungholdGalNavySecComStationG3St11" },
{ system: 66, name: "RungholdGalNavySecComStationG3St12" },
{ system: 140, name: "RungholdGalNavySecComStationG3St13" },
{ system: 110, name: "RungholdGalNavySecComStationG3St14" },
//Galaxy 4
{ system: 249, name: "RungholdGalNavySecComStationG4St01" },
{ system: 71, name: "RungholdGalNavySecComStationG4St02" },
{ system: 57, name: "RungholdGalNavySecComStationG4St03" },
{ system: 144, name: "RungholdGalNavySecComStationG4St04" },
{ system: 198, name: "RungholdGalNavySecComStationG4St05" },
{ system: 153, name: "RungholdGalNavySecComStationG4St06" },
{ system: 204, name: "RungholdGalNavySecComStationG4St07" },
{ system: 73, name: "RungholdGalNavySecComStationG4St08" },
{ system: 102, name: "RungholdGalNavySecComStationG4St09" },
{ system: 222, name: "RungholdGalNavySecComStationG4St10" },
{ system: 29, name: "RungholdGalNavySecComStationG4St11" },
{ system: 233, name: "RungholdGalNavySecComStationG4St12" },
{ system: 152, name: "RungholdGalNavySecComStationG4St13" },
{ system: 190, name: "RungholdGalNavySecComStationG4St14" },
//Galaxy 5
{ system: 151, name: "RungholdGalNavySecComStationG5St01" },
{ system: 227, name: "RungholdGalNavySecComStationG5St02" },
{ system: 6, name: "RungholdGalNavySecComStationG5St03" },
{ system: 51, name: "RungholdGalNavySecComStationG5St04" },
{ system: 60, name: "RungholdGalNavySecComStationG5St05" },
{ system: 129, name: "RungholdGalNavySecComStationG5St06" },
{ system: 8, name: "RungholdGalNavySecComStationG5St07" },
{ system: 53, name: "RungholdGalNavySecComStationG5St08" },
{ system: 85, name: "RungholdGalNavySecComStationG5St09" },
{ system: 120, name: "RungholdGalNavySecComStationG5St10" },
{ system: 208, name: "RungholdGalNavySecComStationG5St11" },
{ system: 220, name: "RungholdGalNavySecComStationG5St12" },
{ system: 146, name: "RungholdGalNavySecComStationG5St13" },
{ system: 66, name: "RungholdGalNavySecComStationG5St14" },
//Galaxy 6
{ system: 214, name: "RungholdGalNavySecComStationG6St01" },
{ system: 161, name: "RungholdGalNavySecComStationG6St02" },
{ system: 250, name: "RungholdGalNavySecComStationG6St03" },
{ system: 127, name: "RungholdGalNavySecComStationG6St04" },
{ system: 23, name: "RungholdGalNavySecComStationG6St05" },
{ system: 154, name: "RungholdGalNavySecComStationG6St06" },
{ system: 234, name: "RungholdGalNavySecComStationG6St07" },
{ system: 24, name: "RungholdGalNavySecComStationG6St08" },
{ system: 55, name: "RungholdGalNavySecComStationG6St09" },
{ system: 64, name: "RungholdGalNavySecComStationG6St10" },
{ system: 231, name: "RungholdGalNavySecComStationG6St11" },
{ system: 140, name: "RungholdGalNavySecComStationG6St12" },
{ system: 202, name: "RungholdGalNavySecComStationG6St13" },
{ system: 35, name: "RungholdGalNavySecComStationG6St14" },
//Galaxy 7
{ system: 26, name: "RungholdGalNavySecComStationG7St01" },
{ system: 218, name: "RungholdGalNavySecComStationG7St02" },
{ system: 9, name: "RungholdGalNavySecComStationG7St03" },
{ system: 174, name: "RungholdGalNavySecComStationG7St04" },
{ system: 156, name: "RungholdGalNavySecComStationG7St05" },
{ system: 251, name: "RungholdGalNavySecComStationG7St06" },
{ system: 75, name: "RungholdGalNavySecComStationG7St07" },
{ system: 136, name: "RungholdGalNavySecComStationG7St08" },
{ system: 184, name: "RungholdGalNavySecComStationG7St09" },
{ system: 87, name: "RungholdGalNavySecComStationG7St10" },
{ system: 212, name: "RungholdGalNavySecComStationG7St11" },
{ system: 116, name: "RungholdGalNavySecComStationG7St12" },
{ system: 98, name: "RungholdGalNavySecComStationG7St13" },
{ system: 55, name: "RungholdGalNavySecComStationG7St14" }
);
}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?
•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?
Re: Smugglers - The Galactic Underworld & Black Markets
Have a look HERE. Specifically at the options for markerShape. Combined with what Cholmondely pointed out it is not too hard to change the shape of the Markers on the F6 chart in an OXZ. Tweaking stuff is half the fun in this game. Beware the Dark Side though, it can become quite addictive. If more help is needed just post, someone will respond forthwith.
Humor is the second most subjective thing on the planet
Brevity is the soul of wit and vulgarity is wit's downfall
Good Night and Good Luck - Read You Soon
Brevity is the soul of wit and vulgarity is wit's downfall
Good Night and Good Luck - Read You Soon
- Cholmondely
- Archivist

- Posts: 6563
- Joined: Tue Jul 07, 2020 11:00 am
- Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
- Contact:
Re: Smugglers - The Galactic Underworld & Black Markets
And, adding on to NiteOwl's comments, here is a list of known markers on the F6 screen:
Reference: F6 page (galactic chart "1")Vanilla game system markers
Green Cross (large, thick arms): current system
Green Square: Point of interest. (Cody's Square): player-marked system for reason chosen by player. Go to F6F6 then Find Planet/enter planet name - that will put the green square on it, then select a different target system with mouse or cursor keys, and the green square will remain where it was.
Red Cross (short, thick arms): target system
Orange Cross (long, thin arms): cargo or parcel delivery contract
Orange Lozenge: passenger delivery contract
Orange Square: cargo delivery contract
OXP system markers
the following oxp derived icons add to the list above
Cross, Red (long, thin arms): GalCop Missions: GalCop missions contract or default marker for other contract "managed" by GalCop Missions (see below)
Cross, Orange (long, thin arms): GalCop Missions: secondary contract derived from an "Investigate unknown beacon" missions
Diamond, Blue: BlOomberg Markets: system with markets-related event
Diamond, Orange: either Explorers' Club (Unvisited system) or Smugglers (systems where only Firearms are illegal)
Diamond, Purple: Home System: one of your Home systems
Diamond, Yellow: Smugglers: systems where commodities other than just firearms are illegal
Square, Orange: GalCop Missions: second system in a two-step mission (first system marked by red cross, as above)
X (Saltire), Green: Explorers' Club: Visited system
X (Saltire), Red: Illegal Goods Tweak OXP: Thankful Slave/Family
Note about GalCop Missions - this oxp does not just create its own missions. It also collates other "non-GalCop Missions" missions for inclusion on its F4 Bulletin Board. Where these other missions have their own icons, these are then used on the maps. Where they do not, GalCop Missions assigns them a default icon - a Red Cross.
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?
•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?
-
crochambeau
- Poor

- Posts: 6
- Joined: Thu Sep 29, 2011 1:20 pm
Re: Smugglers - The Galactic Underworld & Black Markets
Awesome, thanks everyone!
- phkb
- Impressively Grand Sub-Admiral

- Posts: 5624
- Joined: Tue Jan 21, 2014 10:37 pm
- Location: Writing more OXPs, because the world needs more OXPs.
Re: Smugglers - The Galactic Underworld & Black Markets
I’ve got an update incoming that will allow you to change the colour and shape of the chart markers via Library Config. Should be out later today.
- phkb
- Impressively Grand Sub-Admiral

- Posts: 5624
- Joined: Tue Jan 21, 2014 10:37 pm
- Location: Writing more OXPs, because the world needs more OXPs.
Re: Smugglers - The Galactic Underworld & Black Markets
OK, version 2.2 of Smugglers has been released, and now allows you to set the marker color and shape for the chart markers via Library Config.
- phkb
- Impressively Grand Sub-Admiral

- Posts: 5624
- Joined: Tue Jan 21, 2014 10:37 pm
- Location: Writing more OXPs, because the world needs more OXPs.
Re: Smugglers - The Galactic Underworld & Black Markets
Version 2.6 is now in the wild. In this version:
- Moved all text into descriptions.plist or missiontext.plist for easier localisation.
- Corrected information in readme.txt.
- Pushed out tech upgrades to every 60 days (rather than every 30).
- When asked about milkruns, the Dock Master will now show a short range chart or the run, rather than a long range chart.
- Moved all text into descriptions.plist or missiontext.plist for easier localisation.
- Corrected information in readme.txt.
- Pushed out tech upgrades to every 60 days (rather than every 30).
- When asked about milkruns, the Dock Master will now show a short range chart or the run, rather than a long range chart.
-
Heliosphan
- Mostly Harmless

- Posts: 3
- Joined: Mon Feb 09, 2026 1:55 pm
- Location: Interstellar Space (plz help; no fuel!)
Re: Smugglers - The Galactic Underworld & Black Markets
I hate to be a bother, but I believe I have encountered a compatibility issue between Smugglers TGU and the Cargo Contract Mod.
Oolite version 1.90, Cargo Contract Mod version 1.64, and Smuggler TGU version 2.8
Basically, after I realized that my game wasn't generating cargo contracts, a peak into the logs was showing me
Now I initially thought this was an issue with the Cargo Contract Mod, but after adding some log calls for debugging with a stack trace, I found
So I did a bit of digging, and found that in the Cargo Contract Mod, the function _priceForCommodity defined in the oolite-contracts-cargo script is expecting a pair composed of a string, and a SystemInfo object (my debugging included):
However in the smugglers_oolite_contracts_fix script from Smugglers TGU which overwrites the _initialiseCargoContractsForSystem from the Cargo Contract Mod, this new initialisation function eventually calls _priceForCommodity but passes it a string and two integers, e.g.
I didn't see _priceForCommodity redefined anywhere within the smugglers_oolite_contracts_fix script, so there seems to be an argument mismatch. Was something else intended here? I fear I am missing something really obvious that I will feel great shame for. 
Oolite version 1.90, Cargo Contract Mod version 1.64, and Smuggler TGU version 2.8
Basically, after I realized that my game wasn't generating cargo contracts, a peak into the logs was showing me
Code: Select all
[script.javaScript.exception.notFunction]: ***** JavaScript exception (oolite-contracts-cargo 1.88 MOD 1.64): TypeError: systeminfo.samplePrice is not a functionCode: Select all
18:55:47.318 [oolite-contracts-cargo]: systeminfo type = number
18:55:47.318 [oolite-contracts-cargo]: samplePrice type = undefined
18:55:47.319 [oolite-contracts-cargo]: $switech_initialiseCargoContractsForSystem()@C:\Oolite/oolite.app/GNUstep/Library/ApplicationSupport/Oolite/ManagedAddOns/oolite.oxp.phkb.Smugglers_TGU.oxz/Scripts/smugglers_oolite_contracts_fix.js:297
()@../AddOns/oolite.oxp.Switeck.Cargo-Contract-Mod.oxp/Scripts/oolite-contracts-cargo.js:125
18:55:47.319 [script.javaScript.exception.notFunction]: ***** JavaScript exception (oolite-contracts-cargo 1.88 MOD 1.64): TypeError: systeminfo.samplePrice is not a functionCode: Select all
this._priceForCommodity = function(commodity,systeminfo)
{
//No other logs for this script are being written prior to these, which tells me whatever is calling _priceForCommodity is in another script as the only time _priceForCommodity is called within THIS script is preceded by other log calls. How to find what other script is the culprit?
//Stack trace worked! The Smugglers_TGU OXP overwrites the _initialiseCargoContractsForSystem function where _priceForCommodity is called (and where the other log calls I put in are). Seems to be a version mismatch?
log(this.name, "systeminfo type = " + typeof systeminfo); //Attempting debugging; currently returning an integer
log(this.name, "samplePrice type = " + typeof systeminfo.samplePrice); //Attempting debugging; currently returning "undefined" (this is the big issue!)
const stack = new Error().stack.split("\n").slice(1, 6).join("\n"); //Attempting debugging
log(this.name, stack); //Attempting debugging; hopefully this works.
return systeminfo.samplePrice(commodity)*0.1; //sample price returns decicredits, need credits
}Code: Select all
var unitMinPrice = Number((this._priceForCommodity(system.mainStation.market[commodity], System.infoForSystem(galaxyNumber, system.ID).economy, 0)).toFixed(1));- phkb
- Impressively Grand Sub-Admiral

- Posts: 5624
- Joined: Tue Jan 21, 2014 10:37 pm
- Location: Writing more OXPs, because the world needs more OXPs.
Re: Smugglers - The Galactic Underworld & Black Markets
Your analysis is spot on. The version of Switech's script I included in Smugglers is old and out of date, and I haven't ever revisited it to update it.Heliosphan wrote: ↑Mon Feb 16, 2026 1:58 amI didn't see _priceForCommodity redefined anywhere within the smugglers_oolite_contracts_fix script, so there seems to be an argument mismatch. Was something else intended here? I fear I am missing something really obvious that I will feel great shame for.
No longer! New version should be in the manager shortly. Thanks for the heads up and excellent bug report.
-
Heliosphan
- Mostly Harmless

- Posts: 3
- Joined: Mon Feb 09, 2026 1:55 pm
- Location: Interstellar Space (plz help; no fuel!)
Re: Smugglers - The Galactic Underworld & Black Markets
Many thanks, my most Impressively Grand Sub-Admiral; however I return bearing sweet-bitter-sweet news.
The first sweet is that the update has had contracts return!
The bitter news is that... it's all illegal commodities! Contracts for hundreds of tons of slaves and narcotics galore! Now don't get me wrong, I've smuggled a bit of narc using an ever-so-handy smuggling compartment (listen, I know it's illegal, but when someone is selling narcotics for an astoundingly paltry 0.4 credits and someone else is buying one system away at almost 200 credits, you gotta take chances if you want to get a fiiiine ship
), but a contract for 143 tons of narcotics?! Another for 213 tons of slaves?! I don't think there's a smuggling compartment remotely fancy enough for those numbers!
But the second sweet news is, the reason is a simple fix: around line 280 in smugglers_oolite_contracts_fix.js, there is a conditional within a do-while loop with a very useful comment, behind which is some very important code for contract generation:
As written, this conditional is only satisfied when :
1) illegal" is no longer a null type (as initialized a few lines earlier) but now an array containing at least "slaves" as well as all other illegal commodities at a given destination, and
2) the chosen commodity IS within that array, i.e. illegal at the destination!
By changing the conditional to
It is now satisfied- in part- only when the chosen commodity is not in the array; i.e. legal at the destination.
Some cursory testing seems to indicate this small change has rectified the situation.
The first sweet is that the update has had contracts return!
The bitter news is that... it's all illegal commodities! Contracts for hundreds of tons of slaves and narcotics galore! Now don't get me wrong, I've smuggled a bit of narc using an ever-so-handy smuggling compartment (listen, I know it's illegal, but when someone is selling narcotics for an astoundingly paltry 0.4 credits and someone else is buying one system away at almost 200 credits, you gotta take chances if you want to get a fiiiine ship
But the second sweet news is, the reason is a simple fix: around line 280 in smugglers_oolite_contracts_fix.js, there is a conditional within a do-while loop with a very useful comment, behind which is some very important code for contract generation:
Code: Select all
if(illegal && illegal.indexOf(commodity) >= 0) { // don't pick commodities illegal at the destination1) illegal" is no longer a null type (as initialized a few lines earlier) but now an array containing at least "slaves" as well as all other illegal commodities at a given destination, and
2) the chosen commodity IS within that array, i.e. illegal at the destination!
By changing the conditional to
Code: Select all
if(illegal && illegal.indexOf(commodity) === -1) {Some cursory testing seems to indicate this small change has rectified the situation.
- phkb
- Impressively Grand Sub-Admiral

- Posts: 5624
- Joined: Tue Jan 21, 2014 10:37 pm
- Location: Writing more OXPs, because the world needs more OXPs.
Re: Smugglers - The Galactic Underworld & Black Markets
D'oh! Got my logic backwards! Thanks for the pickup. New version will be out shortly.Heliosphan wrote: ↑Thu Feb 19, 2026 12:27 amIt is now satisfied- in part- only when the chosen commodity is not in the array; i.e. legal at the destination.