One question, Do I need uninstall the "better turrets mod" or is your mod just changing the Cicero1111 mod?
Thanks for the update, much appreciated.

Moderators: Scripting / Modding Moderators, Moderators for English X Forum
Yes, as Better Turrets is now integrated on CM, is better do uninstall its solo version to run Conquer mod from v016s and above.Informer wrote:Very nice. Will update this new version tonight.
One question, Do I need uninstall the "better turrets mod" or is your mod just changing the Cicero1111 mod?
Thanks for the update, much appreciated.
Hi w.evans,w.evans wrote:FINAL changelog! It's done! Congrats!Rubini wrote:First post updated with new version v016s. Here its final changelog:
Code: Select all
<do_if value="$zones.{$i}.name != 'Empty Space' and $zones.{$i}.name != 'Unknown Zone'and player.primaryship.zone != $zones.{$i}" >
Code: Select all
<cue name="Build_StrongHold_cue" checktime="15s" checkinterval="30s" version="1">
<conditions>
<cue_is_complete cue="md.Setup.Start"/>
<check_value value="md.CM_Config.Settings.$Check == 1" />
</conditions>
<delay min="90s" max="150s"/>
<actions>
<!-- conditions for military presence: unique owner of military l or xl in a zone, no enemy stations or stronghold present, zone ownership must be enemy, own or null -->
<create_list name="$Owners"/>
<find_zone name="$zones" space="player.galaxy" multiple="true" >
<match class="class.highway" negate="true"/>
</find_zone>
<do_all exact="$zones.count" counter="$i">
<do_if value="$zones.{$i}.name != 'Empty Space' and $zones.{$i}.name != 'Unknown Zone'and player.primaryship.zone != $zones.{$i}" >
<!--<do_if value="$zones.{$i}.name != 'Empty Space' and player.primaryship.zone != $zones.{$i}" >-->
<find_ship name="$zoneShips" class="[class.ship_l, class.ship_xl]" functional="true" space="$zones.{$i}" multiple="true">
<match_any>
<match primarypurpose="objectpurpose.fight"/>
<match macro="macro.units_size_xl_cargo_hauler_2_macro"/>
</match_any>
</find_ship>
<do_if value="@$zoneShips.count" >
<do_all exact="$zoneShips.count" counter="$j">
<set_value name="$zs_owner" exact="$zoneShips.{$j}.owner" />
<!-- short version player -->
<do_if value="$zs_owner == faction.player" >
<set_value name="$zs_owner" exact="faction.canteran" />
</do_if>
<!--<do_if value="not $Owners.indexof.{$zs_owner} and $zs_owner != faction.player">-->
<do_if value="not $Owners.indexof.{$zs_owner}">
<!-- short version player -->
<append_to_list name="$Owners" exact="$zs_owner" />
</do_if>
</do_all>
<do_if value="$Owners.count == 1 and md.Conquer_Mod.Start.$Main_Factions.indexof.{$Owners.{1}} and $Owners.{1} != faction.xenon" chance="md.CM_Config.Settings.$StgRFChance" >
<find_station name="$Stations" space="$zones.{$i}" multiple="true"/>
<set_value name="$Flag1" exact="1" />
<do_if value="@$Stations.count gt 0" >
<do_all exact="$Stations.count" counter="$k">
<do_if value="$Stations.{$k}.owner.hasrelation.enemy.{$Owners.{1}} or $Stations.{$k}.macro == macro.struct_bt_alb_warehouse_macro">
<set_value name="$Flag1" exact="0" />
</do_if>
</do_all>
</do_if>
<do_if value="$Flag1 and player.primaryship.zone != $zones.{$i} and (@$zones.{$i}.owner.hasrelation.enemy.{$Owners.{1}} or $zones.{$i}.owner == $Owners.{1} or $zones.{$i}.owner == null)" >
<!-- CREATE STRONGHOLD -->
<create_station name="$StrongHold" macro="macro.struct_bt_alb_warehouse_macro" zone="$zones.{$i}" owner="$Owners.{1}">
<safepos y="-5km"/>
<buildsequence sequence="'a'" stage="1"/>
<buildsequence sequence="'f'" stage="3"/>
</create_station>
<create_cue_actor name="$defencemanager" cue="this">
<select faction="$Owners.{1}" tags="tag.defencecontrol"/>
<owner exact="$Owners.{1}" />
</create_cue_actor>
<set_entity_type entity="$defencemanager" type="entitytype.defencecontrol" />
<assign_defence_manager object="$StrongHold" actor="$defencemanager"/>
<start_script object="$defencemanager" name="'fight.attack.object.station'" />
<!-- create minefield in a Safe position around the Stronghold -->
<do_all min="md.CM_Config.Settings.$MineMin" max="md.CM_Config.Settings.$MineMax">
<set_value name="$Yw" min="1deg" max="360deg"/>
<set_value name="$Pt" min="1deg" max="360deg"/>
<set_value name="$Rl" min="1deg" max="360deg"/>
<create_object groupname="$Mines" zone="$zones.{$i}" macro="macro.props_wps_mine_02_macro" owner="$Owners.{1}">
<safepos object="$StrongHold" min="3000m" max="6500m" radius="600m"/>
<rotation yaw="$Yw" pitch="$Pt" roll="$Rl"/>
</create_object>
</do_all>
<do_if value="$Owners.{1} == faction.canteran" >
<set_known object="$StrongHold" known="true" />
</do_if>
<do_if value="md.CM_Config.Settings.$DebugMessages or md.Conquer_Mod.Start.$Debug" >
<show_notification caption="'=== Conquer Mod Build_StrongHold ==='" details="' \n Stronghold built by military presence: \n Zone: %1 \n Zone owner: %2 \n Ships l xl: %3 \n Owners.count: %4 \n first Owner.list.name: %5 '.[$zones.{$i}.name, $zones.{$i}.owner, @$zoneShips.count, $Owners.count, $Owners.{1}]" timeout="10s" queued="false" priority="8" sound="notification_generic"/>
<write_to_logbook category="general" text="'=== Conquer Mod Build_StrongHold === \n Stronghold built by military presence: \n Zone: %1 \n Zone owner: %2 \n Ships l xl: %3 \n Owners.count: %4 \n first Owner.list.name: %5 '.[$zones.{$i}.name, $zones.{$i}.owner, @$zoneShips.count, $Owners.count, $Owners.{1}]"/>
</do_if>
</do_if>
</do_if>
<remove_value name="$zoneShips"/>
<clear_list list="$Owners"/>
</do_if>
</do_if>
</do_all>
<reset_cue cue="Build_StrongHold_cue"/>
</actions>
</cue>
Well, i played the game almost the end with Conquer Mod last 30 days and didn't saw this behaviour. Obviously a lot of my capships (trade or military ones) also boost here and there. And, as this mod is huge in terms of how much areas of the game it works, isn´t possible to just "one man" test all possible situations, so errors could pass without notice on my end. We must concentrate on the above code as it is the unique place where the stronghold can be built. You saw there a explicit line code that is exactly to not build anything in empty zones. Unless empty zones have others names that not those 2: "Empty Space" or "Unknown Zone". I made this routine 2 months ago and have looked deep on X:R files looking this issue and zone names. Do you had or noticed this behaviour in others CM versions?DaveDee wrote:Yup, 3 outposts atm in Glaring Truth. Dunno how much in other sectors.- You have Outposts (strongholds) being create in Empty or Unknown zones.
Is this?
Is it possible, that boosting trade ships are causing this? I have no other idea.
If you really need it, i can test it without other mods.
So the code that are in the mod must do it. Or should be.<page id="20005" title="Zones" descr="Zone names and descriptions" voice="yes">
<t id="1">Wrecksville</t>
<t id="2">Azure Barrier</t>
<t id="3">Smokestack</t>
<t id="4">Straining Coppice</t>
<t id="5">Auspicious Excavation</t>
<t id="6">Dwarfish Tinderbox</t>
<t id="7">Distant Fume</t>
<t id="8">Dormant Bear</t>
<t id="9">Even Temper</t>
<t id="10">Epsilon Lowlands</t>
<t id="11">Watergate</t>
<t id="12">Frozen Circuit</t>
<t id="13">Cuspid Splint</t>
<t id="14">Distress Reek</t>
<t id="15">Cold Peaks</t>
<t id="16">Crossroads</t>
<t id="17">Sinister Poem</t>
<t id="18">Periodic Blasting</t>
<t id="19">Shady Vault</t>
<t id="20">Five Ways</t>
<t id="21">Buried Treasure</t>
<t id="22">Forlorn Armoury</t>
<t id="23">Serpentine Driveway</t>
<t id="24">The Third Duke</t>
<t id="25">Liquid Metal</t>
<t id="26">Forge-Welded Mail</t>
<t id="27">The Big Empty</t>
<t id="28">Concealed Hideout</t>
<t id="29">Exhaustless Mines</t>
<t id="30">Woodland Pasture</t>
<t id="31">Steady Mole</t>
<t id="32">Gemstone Manufacture</t>
<t id="33">Rising Star</t>
<t id="34">Twilight Sentinel</t>
<t id="35">Flickering Flame</t>
<t id="36">Dim Flamelet</t>
<t id="37">Persistent Darkening</t>
<t id="38">Sparse Warmth</t>
<t id="39">Crimson Rocks</t>
<t id="40">Fell Affliction</t>
<t id="41">Heartache Mist</t>
<t id="42">Sanguine Agony</t>
<t id="43">Torrid Veil</t>
<t id="44">Unmet Promise</t>
<t id="45">Fervid Corona</t>
<t id="46">Gushing Spring</t>
<t id="47">Furnace Chamber</t>
<t id="48">Forty-Two</t>
<t id="49">Magma Pool</t>
<t id="50">Darned Hot Air</t>
<t id="51">Radiation Belt</t>
<t id="52">Fifteen Rays</t>
<t id="53">Scorched Aura</t>
<t id="54">Vapour Stream</t>
<t id="55">Lava Flow</t>
<t id="56">Extinct Torch</t>
<t id="57">Fiendish Moloch</t>
<t id="58">Gatekeeper's House</t>
<t id="59">The Fallen Kingdom</t>
<t id="60">Last Stand</t>
<t id="61">Voracious Lady</t>
<t id="62">Aerodrome</t>
<t id="63">Icy Tears</t>
<t id="64">Thriving Fields</t>
<t id="65">Double Junction</t>
<t id="66">Wavy Haze</t>
<t id="67">Pearly Shore</t>
<t id="68">Murky Skies</t>
<t id="69">Ratfish Waters</t>
<t id="70">The Great Basin</t>
<t id="71">Twin Tempest</t>
<t id="72">Relocating Stones</t>
<t id="73">The Smoke Screen</t>
<t id="74">Drippy Ascent</t>
<t id="75">Aspiring Champion</t>
<t id="76">High Scholar</t>
<t id="77">Gleam Of Hope</t>
<t id="78">Towering Heavens</t>
<t id="79">Everlasting Warden</t>
<t id="80">The Vindicator</t>
<t id="81">Paramount Benefactor</t>
<t id="82">Magnificent Templar</t>
<t id="87">Keen Chant</t>
<t id="88">Silent Void</t>
<t id="89">Path Of Glory</t>
<t id="90">Solitude</t>
<t id="91">Cosy Shade</t>
<t id="92">Eternal Dawn</t>
<t id="93">Illusory Rest</t>
<t id="94">Alpha Quadrant</t>
<t id="95">Aged Ductwork</t>
<t id="96">Grim Keepers</t>
<t id="97">Timid Star</t>
<t id="98">Inviting Colossus</t>
<t id="99">Blast Quarry</t>
<t id="100">Sturdy Crusader</t>
<t id="101">Sunken Frigate</t>
<t id="102">Imminent Mischief</t>
<t id="103">Deceptive Dead End</t>
<t id="104">Prevarication</t>
<t id="105">Unending Path</t>
<t id="106">Indignity</t>
<t id="107">Twisted Faith</t>
<t id="108">The Sixth Scripture</t>
<t id="109">Shattered Singularity</t>
<t id="110">Venturous Profit</t>
<t id="111">Schrödinger's Drift</t>
<t id="112">Time Distortion</t>
<t id="113">Gravity Anomaly</t>
<t id="114">Cryptic Heart</t>
<t id="115">Verdant Profit</t>
<t id="116">Last Resort</t>
<t id="117">Silent Night</t>
<t id="118">Serpent's Tail</t>
<t id="119">Shadow's Heart</t>
<t id="120">Postern Gate</t>
<t id="121">Scaleplate Pact</t>
<t id="122">Hissed Syllable</t>
<t id="123">Leap of Faith</t>
<t id="124">Sea-green Oasis</t>
<t id="125">Corsair's Gambit</t>
<t id="126">Sanctuary</t>
<t id="127">Biting Steel</t>
<t id="128">Risky Deal</t>
<t id="129">Gantelios' Bane</t>
<t id="200">Empty Space</t>
<t id="301">Black Body Enclosure</t>
<t id="302">Sermon of Nothingness</t>
<t id="303">Salient Point</t>
<t id="304">Agonizing Pain</t>
<t id="305">Faraway Balcony</t>
<t id="306">Auxilliary Gateway</t>
<t id="307">Curvy Drift</t>
<t id="308">Fool's Errand</t>
<t id="309">Cerebral Fault</t>
<t id="310">Insignificant Other</t>
<t id="311">Unknown Threat</t>
<t id="312">Community Garden</t>
<t id="314">Uncanny Approach</t>
<t id="315">Grim Seat</t>
<t id="316">Lost Case</t>
<t id="317">Superior Route</t>
<t id="318">Ruptured Defence</t>
<t id="319">Eternity</t>
<t id="320">The Last Resort</t>
<t id="321">Gargantuan Emptiness</t>
<t id="322">Colourful Scarf</t>
<t id="323">Blasted Arc</t>
<t id="324">Apotheosis</t>
<t id="325">The Spice</t>
<t id="326">Unheeded Advice</t>
<t id="327">Nameless Heights</t>
<t id="328">Blown Chance</t>
<t id="329">Numbered Day</t>
<t id="330">Lost Corner</t>
<t id="331">Black Ocean</t>
<t id="332">Eureka Eight</t>
<t id="333">Blatant Mistake</t>
<t id="334">Garnered Crown</t>
<t id="335">Outrage</t>
<t id="336">Drawn Sabres</t>
<t id="337">Crammed Palace</t>
<t id="338">Skimmed Evil</t>
<t id="339">Computational Error</t>
<t id="340">Primitive Reaches</t>
</page>
<page id="20006" title="Miscellaneous Locations" descr="Text for Miscellaneous Locations" voice="yes">
<t id="101">Unknown System</t>
<t id="201">Unknown Sector</t>
<t id="301">Unknown Zone</t>
</page>
Code: Select all
<find_zone name="$zones" space="player.galaxy" multiple="true" >
<match class="class.highway" negate="true"/>
</find_zone>
<do_all exact="$zones.count" counter="$i">
<do_if value="$zones.{$i}.name != 'Empty Space' and $zones.{$i}.name != 'Unknown Zone' and player.primaryship.zone != $zones.{$i}" >
SureIf you want this small file i can send it to you or just send your saved game that i will look into.
checking for Zone NAMES is very,very bad practice because its language dependent. in German these two are called "Leerer Raum" or "Unbekannte Zone" for example. if you want to keep this method at least compare it with a String read from the Text DB instead of hard-coding it:Rubini wrote:So the code that are in the mod must do it. Or should be.![]()
Code: Select all
<find_zone name="$zones" space="player.galaxy" multiple="true" > <match class="class.highway" negate="true"/> </find_zone> <do_all exact="$zones.count" counter="$i"> <do_if value="$zones.{$i}.name != 'Empty Space' and $zones.{$i}.name != 'Unknown Zone' and player.primaryship.zone != $zones.{$i}" >
Code: Select all
<do_if value="not $zones.{$i}.istemporaryzone and $zones.{$i}.name != {20006,301} and player.primaryship.zone != $zones.{$i}" >
Code: Select all
<find_zone name="$targetzone" space="$space" tempzone="false">