[MOD] Argon Reborn - (Improved NPCs, Station Race NPCs, Argon Race Habitat or Custom)

The place to discuss scripting and game modifications for X4: Foundations.

Moderators: Moderators for English X Forum, Scripting / Modding Moderators

Post Reply
FireFly21
Posts: 2
Joined: Sun, 16. Jul 06, 19:43
x4

Re: [MOD] Argon Reborn - (Improved NPCs, Station Race NPCs, Argon Race Habitat or Custom)

Post by FireFly21 » Wed, 2. Dec 20, 00:42

I've had the same issues with this mod where all Split NPCs looked the same, and with the split starts the split plot ships would spawn without pilots. I'm pretty sure I fixed it. I didn't test it extensively, I just started a new game with a split start and everything seems to be working ok. Both Argon Reborn and Shipyards Crew are active.

I just copied the code from the split dlc files to the mod files:

In characters.xml I added this:

Code: Select all

<add sel="/characters">
    <!--<character id="TEMP_manager_split_random" group="split.manager">
      <category tags="[npc, crew, officer, trader, commander, fighterpilot, manager, marine, masstraffic, watchdog, pilot, traderpilot]" faction="[split, freesplit, faction.player]" race="split"/>
      <owner list="[split, freesplit]"/>
    </character>-->

    <character id="trader_split_random" group="split.trader">
      <category tags="[crew, pilot, aipilot, traderpilot, masstraffic]" faction="[split, freesplit, fallensplit, court, faction.player]" race="split"/>
      <skills>
        <skill type="piloting" min="5" max="12"/>
        <skill type="morale" max="12"/>

        <skill type="engineering" min="5" max="6"/>
        <skill type="management" exact="0"/>
        <skill type="boarding" exact="0"/>
      </skills>
      <owner list="[split, freesplit, fallensplit, court]"/>
    </character>
    <character id="fighter_split_random" group="split.pilot">
      <category tags="[crew, officer, pilot, aipilot, fighterpilot, commander, masstraffic, watchdog, regular]" faction="[split, freesplit, fallensplit, court, faction.player]" race="split"/>
      <skills>
        <skill type="piloting" min="4" max="15"/>
        <skill type="morale" max="12"/>

        <skill type="engineering" exact="0"/>
        <skill type="management" exact="0"/>
        <skill type="boarding" min="5" max="6"/>
      </skills>
      <owner list="[split, freesplit, fallensplit, court]"/>
    </character>
    <character id="manager_split_random" group="split.manager">
      <category tags="[crew, officer, manager]" faction="[split, freesplit, fallensplit, court, faction.player]" race="split"/>
      <skills>
        <skill type="management" min="5" max="9"/>
        <skill type="morale" max="12"/>

        <skill type="piloting" max="3"/>
        <skill type="engineering" min="2" max="6"/>
        <skill type="boarding" exact="0"/>
      </skills>
      <owner list="[split, freesplit, fallensplit, court]"/>
    </character>
    <character id="factionrepresentative_split" group="split.factionrepresentative.male">
      <category tags="[factionrepresentative]" faction="split" race="split"/>
      <skills>
        <skill type="management" min="10" max="15"/>
        <skill type="morale" max="15"/>

        <skill type="boarding" min="6" max="15"/>
        <skill type="engineering" min="5" max="15"/>
        <skill type="piloting" min="11" max="15"/>
      </skills>
      <!--TODO @Owen page-->
      <page exact="10405"/>
      <owner exact="split"/>
    </character>
    <character id="factionrepresentative_freesplit" group="split.factionrepresentative.female">
      <category tags="[factionrepresentative]" faction="freesplit" race="split"/>
      <skills>
        <skill type="management" min="10" max="15"/>
        <skill type="morale" max="15"/>

        <skill type="boarding" min="6" max="15"/>
        <skill type="engineering" min="5" max="15"/>
        <skill type="piloting" min="11" max="15"/>
      </skills>
      <!--TODO @Owen page-->
      <page exact="10403"/>
      <owner exact="freesplit"/>
    </character>
    <character id="factionrepresentative_court" group="split.factionrepresentative.female">
      <category tags="[factionrepresentative]" faction="court" race="split"/>
      <skills>
        <skill type="management" min="10" max="15"/>
        <skill type="morale" max="15"/>
        <skill type="boarding" min="6" max="15"/>
        <skill type="engineering" min="5" max="15"/>
        <skill type="piloting" min="11" max="15"/>
      </skills>
      <!--TODO @Owen page-->
      <page exact="10403"/>
      <owner exact="court"/>
    </character>

    <!-- additional character definitions with correct factions set since we can't use xml patching to insert data into an attribute, only replace which is not good enough when multiple extensions may be involved -->
    <!-- regular -->
    <character id="service_split_random_dlc_split" group="split.service">
      <category tags="[crew, service, regular, recruitable]" faction="[split, freesplit, fallensplit, court]" race="split"/>
      <skills>
        <skill type="engineering" min="5" max="6"/>
        <skill type="morale" max="5"/>

        <skill type="piloting" max="3"/>
        <skill type="management" exact="0"/>
        <skill type="boarding" min="2" max="3"/>
      </skills>
      <owner list="[split, freesplit, fallensplit, court]"/>
    </character>
    <character id="marine_split_random_dlc_split" group="split.marine">
      <category tags="[crew, marine, regular, recruitable]" faction="[split, freesplit, fallensplit, court]" race="split"/>
      <skills>
        <skill type="boarding" min="7" max="8"/>
        <skill type="morale" min="3" max="8"/>

        <skill type="engineering" exact="0"/>
        <skill type="piloting" max="3"/>
        <skill type="management" exact="0"/>
      </skills>
      <owner list="[split, freesplit, fallensplit, court]"/>
    </character>
    <character id="fighter_split_regular_random" group="split.pilot">
      <category tags="[crew, officer, pilot, aipilot, fighterpilot, commander, masstraffic, watchdog, regular, recruitable]" faction="[split, freesplit, fallensplit, court, faction.player]" race="split"/>
      <skills>
        <skill type="piloting" min="5" max="7"/>
        <skill type="morale" exact="7"/>

        <skill type="engineering" exact="0"/>
        <skill type="management" exact="0"/>
        <skill type="boarding" min="1" max="3"/>
      </skills>
      <owner list="[split, freesplit, fallensplit, court]"/>
    </character>
    <character id="manager_split_regular_random" group="split.manager">
      <category tags="[crew, officer, manager, regular, recruitable]" faction="[split, freesplit, fallensplit, court, faction.player]" race="split"/>
      <skills>
        <skill type="management" min="5" max="6"/>
        <skill type="morale" max="5"/>

        <skill type="piloting" max="3"/>
        <skill type="engineering" exact="0"/>
        <skill type="boarding" min="2" max="3"/>
      </skills>
      <owner list="[split, freesplit, fallensplit, court]"/>
    </character>
    <!-- passenger -->
    <character id="passenger_split_random_dlc_split" group="split.passenger">
      <category tags="[crew, passenger]" faction="[split, freesplit, fallensplit, court]" race="split"/>
      <skills>
        <skill type="boarding" exact="0"/>
        <skill type="engineering" exact="0"/>
        <skill type="management" max="6"/>
        <skill type="morale" max="12"/>
        <skill type="piloting" max="3"/>
      </skills>
      <owner list="[split, freesplit, fallensplit, court]"/>
    </character>
    <character id="prisoner_split_random_dlc_split" group="split.prisoner">
      <category tags="[crew, prisoner]" faction="[split, freesplit, fallensplit, court]" race="split"/>
      <skills>
        <skill type="boarding" exact="0"/>
        <skill type="engineering" exact="0"/>
        <skill type="management" max="6"/>
        <skill type="morale" max="12"/>
        <skill type="piloting" max="3"/>
      </skills>
      <owner list="[split, freesplit, fallensplit, court]"/>
    </character>

    <!-- Rookies -->
    <character id="service_split_random_rookie_dlc_split" group="split.service">
      <category tags="[crew, service, rookie, recruitable]" faction="[split, freesplit, fallensplit, court]" race="split"/>
      <skills>
        <skill type="engineering" exact="1"/>
        <skill type="morale" max="3"/>

        <skill type="piloting" exact="0"/>
        <skill type="management" exact="0"/>
        <skill type="boarding" min="1" max="3"/>
      </skills>
      <owner list="[split, freesplit, fallensplit, court]"/>
    </character>
    <character id="marine_split_random_rookie_dlc_split" group="split.marine">
      <category tags="[crew, marine, rookie, recruitable]" faction="[split, freesplit, fallensplit, court]" race="split"/>
      <skills>
        <skill type="boarding" min="2" max="4"/>
        <skill type="morale" min="3" max="6"/>

        <skill type="engineering" exact="0"/>
        <skill type="piloting" exact="0"/>
        <skill type="management" exact="0"/>
      </skills>
      <owner list="[split, freesplit, fallensplit, court]"/>
    </character>
    <character id="fighter_split_random_rookie" group="split.pilot">
      <category tags="[crew, officer, pilot, aipilot, fighterpilot, commander, masstraffic, watchdog, rookie, recruitable]" faction="[split, freesplit, fallensplit, court, faction.player]" race="split"/>
      <skills>
        <skill type="piloting" min="1" max="5"/>
        <skill type="morale" min="4" max="5"/>

        <skill type="engineering" exact="0"/>
        <skill type="management" exact="0"/>
        <skill type="boarding" min="1" max="3"/>
      </skills>
      <owner list="[split, freesplit, fallensplit, court]"/>
    </character>

    <!-- Veteran -->
    <character id="service_split_random_veteran_dlc_split" group="split.service">
      <category tags="[crew, service, veteran]" faction="[split, freesplit, fallensplit, court]" race="split"/>
      <skills>
        <skill type="engineering" min="6" max="12"/>
        <skill type="morale" min="6" max="12"/>
        <skill type="piloting" min="3" max="9"/>
        <skill type="management" exact="0"/>
        <skill type="boarding" exact="0"/>
      </skills>
      <owner list="[split, freesplit, fallensplit, court]"/>
    </character>
    <character id="marine_split_random_veteran_dlc_split" group="split.marine">
      <category tags="[crew, marine, veteran]" faction="[split, freesplit, fallensplit, court]" race="split"/>
      <skills>
        <skill type="boarding" min="6" max="12"/>
        <skill type="morale" min="6" max="12"/>
        <skill type="engineering" exact="0"/>
        <skill type="piloting" min="3" max="9"/>
        <skill type="management" exact="0"/>
      </skills>
      <owner list="[split, freesplit, fallensplit, court]"/>
    </character>

    <!-- Elite -->
    <character id="service_split_random_elite_dlc_split" group="split.service">
      <category tags="[crew, service, elite]" faction="[split, freesplit, fallensplit, court]" race="split"/>
      <skills>
        <skill type="engineering" min="12"/>
        <skill type="morale" min="12"/>
        <skill type="piloting" min="6" max="12"/>
        <skill type="management" exact="0"/>
        <skill type="boarding" exact="0"/>
      </skills>
      <owner list="[split, freesplit, fallensplit, court]"/>
    </character>
    <character id="marine_split_random_elite_dlc_split" group="split.marine">
      <category tags="[crew, marine, elite]" faction="[split, freesplit, fallensplit, court]" race="split"/>
      <skills>
        <skill type="boarding" min="12"/>
        <skill type="morale" min="12"/>
        <skill type="engineering" exact="0"/>
        <skill type="piloting" min="3" max="9"/>
        <skill type="management" exact="0"/>
      </skills>
      <owner list="[split, freesplit, fallensplit, court]"/>
    </character>
    <character id="platform_trader_split_random_dlc_split" group="split.trader">
      <category tags="[trader, licencetrader]" faction="[split, freesplit, fallensplit, court]" race="split"/>
      <skills>
        <skill type="management" min="9" max="12"/>
        <skill type="morale" max="12"/>

        <skill type="piloting" max="3"/>
        <skill type="engineering" max="1"/>
        <skill type="boarding" exact="0"/>
      </skills>
      <owner list="[split, freesplit, fallensplit, court]"/>
      <stock ref="'default_trader'" />
    </character>
    <character id="ship_trader_split_random_dlc_split" group="split.shiptrader">
      <category tags="[trader, shiptrader]" faction="[split, freesplit, fallensplit, court]" race="split" />
      <skills>
        <skill type="management" min="9" max="12"/>
        <skill type="morale" max="12"/>

        <skill type="piloting" max="3"/>
        <skill type="engineering" max="1"/>
        <skill type="boarding" exact="0"/>
      </skills>
      <owner list="[split, freesplit, fallensplit, court]"/>
      <stock ref="'default_trader'" />
    </character>
    <character id="shadyguy_split_random_dlc_split" group="split.shadyguy">
      <category tags="[shadyguy]" faction="[split, freesplit, fallensplit, court]" race="split" />
      <skills>
        <skill type="piloting" min="5" max="12"/>
        <skill type="morale" max="12"/>

        <skill type="engineering" exact="0"/>
        <skill type="management" min="1" max="6"/>
        <skill type="boarding" exact="0"/>
      </skills>
      <owner list="[split, freesplit, fallensplit, court]" />
      <stock ref="'default_shadyguy'" />
    </character>
    <!-- Casually clothed platform NPCs -->
    <character id="split_casual_dlc_split" group="split.civilian">
      <category tags="[casual]" faction="[split, freesplit, fallensplit, court]" race="split"/>
      <skills>
        <skill type="morale" max="1"/>

        <skill type="piloting" max="3"/>
        <skill type="engineering" exact="0"/>
        <skill type="management" exact="0"/>
        <skill type="boarding" min="1" max="2"/>
      </skills>
      <owner list="[split, freesplit, fallensplit, court]"/>
    </character>  
 </add>
 
   <!--
  #############
  Patching of Split character definitions to reference the mixed gender groups as the base game references the female groups
  #############-->
  <!-- regular -->
  <replace sel="/characters/character[@id='service_split_random']/@group">split.service</replace>
  <replace sel="/characters/character[@id='marine_split_random']/@group">split.marine</replace>
  <replace sel="/characters/character[@id='passenger_split_random']/@group">split.passenger</replace>
  <replace sel="/characters/character[@id='prisoner_split_random']/@group">split.prisoner</replace>
  <!-- Rookies -->
  <replace sel="/characters/character[@id='service_split_random_rookie']/@group">split.service</replace>
  <replace sel="/characters/character[@id='marine_split_random_rookie']/@group">split.marine</replace>
  <!-- Veteran -->
  <replace sel="/characters/character[@id='service_split_random_veteran']/@group">split.service</replace>
  <replace sel="/characters/character[@id='marine_split_random_veteran']/@group">split.marine</replace>
  <!-- Elite -->
  <replace sel="/characters/character[@id='service_split_random_elite']/@group">split.service</replace>
  <replace sel="/characters/character[@id='marine_split_random_elite']/@group">split.marine</replace>
  <!-- Traders -->
  <replace sel="/characters/character[@id='ship_trader_split_random']/@group">split.shiptrader</replace>
  <replace sel="/characters/character[@id='shadyguy_split_random']/@group">split.shadyguy</replace>

And in charactergroups.xml I replaced

Code: Select all

    <character name="split.generic.male">
    <!--<select macro="character_split_male_generic_01_macro" />-->
    <!--TODO @Owen better handle the basegame male split case-->
    <select macro="character_split_female_generic_01_macro" />
  </character>
with

Code: Select all

  <character name="split.generic.male">
    <select macro="character_split_male_generic_01_macro" />
    <!--TODO @Owen better handle the basegame male split case-->
   <!--  <select macro="character_split_female_generic_01_macro" /> -->
  </character>
and added this:

Code: Select all

<add sel="/characters">
    <!--<character name="split.trader">
      <select macro="character_split_male_generic_02_macro" />
    </character>
    <character name="split.pilot">
      <select macro="character_split_male_generic_02_macro" />
    </character>
    <character name="split.manager">
      <select macro="character_split_male_generic_02_macro" />
    </character>-->
    <character name="split.factionrepresentative">
      <select character="split.factionrepresentative.male" />
      <select character="split.factionrepresentative.female" />
    </character>
    <character name="split.factionrepresentative.male">
      <select character="split.manager.male"/>
    </character>
    <character name="split.factionrepresentative.female">
      <select character="split.manager.female"/>
    </character>
  </add>
  <remove sel="/characters/character[@name='split.generic.male']/select[@macro='character_split_female_generic_01_macro']"/>
  <add sel="/characters/character[@name='split.generic.male']">
    <select macro="character_split_male_generic_02_macro" />
	  <select macro="character_split_male_generic_03_macro" />
    <select macro="character_split_male_generic_04_macro" />
    <select macro="character_split_male_generic_05_macro" />
    <select macro="character_split_male_generic_06_macro" />
    <select macro="character_split_male_generic_07_macro" />
  </add>
  <replace sel="/characters/character[@name='split.generic.female']/select/@macro">character_split_female_generic_02_macro</replace>
  <add sel="/characters/character[@name='split.generic.female']">
    <select macro="character_split_female_generic_03_macro" />
    <select macro="character_split_female_generic_04_macro" />
    <select macro="character_split_female_generic_05_macro" />
  </add>

idragon
Posts: 39
Joined: Fri, 17. Mar 17, 15:37
x4

Re: [MOD] Argon Reborn - (Improved NPCs, Station Race NPCs, Argon Race Habitat or Custom)

Post by idragon » Tue, 30. Mar 21, 19:29

Update for COH, not fully tested, will fix in time.

Beta version for COH, please post bugs.


- I haven't test the habitats

- i didn't test buying crew, when buying ships


Don't use the Shipyards files for now, they will mess up your game. Will update those, after more testing.

Post Reply

Return to “X4: Foundations - Scripts and Modding”