Fractal Softworks Forum

Please login or register.

Login with username, password and session length
Advanced search  

News:

Starsector 0.97a is out! (02/02/24); New blog post: Simulator Enhancements (03/13/24)

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Morrokain

Pages: 1 [2] 3 4 5
16
Modding / Blueprint Package Tiers
« on: January 03, 2019, 08:06:49 PM »
I recently familiarized myself with the wiki on blueprint modding and 0.9 compatibility to start campaign balance and though I have a pretty good understanding of how the blueprint system works in general and with faction spawning in the campaign.

I have a couple more questions about blueprint packages those sources don't completely cover:

How are blueprint packages, specifically, distributed to the player, and do they unlock everything in that package all at once or a single bp of the set?

Are they sold in markets? (I've browsed a few and haven't seen any). Can they be locked or unlocked with skills, or based on faction reputation such as with weapons bought wholesale? Or are they strictly limited to procgen (with the thing determining drop rate being the rare_bp tag) and raiding? I have created 3 tiers for each tech doctrine, and I want the first tier to be purchasable at favorable, the 2nd tier to unlock at welcoming and the 3rd tier to unlock only at "friendly" and above for specific factions.

17
Modding / [0.9a] Total Conversion Replace Array Resource (mod_info)
« on: December 14, 2018, 12:53:53 PM »
If you are working on a total conversion in starsector version .9 or above, changes to the way resource files are merged cause each base starsector file to attempt to merge with any mod files of the same name present in mod directories.

To get around this and truly have a total conversion, each individual file, along with its file path, must be included in the replace array inside mod_info. To save modders time, I will include all ship, skin, weapon, variant, and faction files inside the array alongside their csv files.

This will also include lines for a few other mod files in config and such that can be removed as needed. If your mod doesn't replace them, don't include them in the array.

Spoiler
  "replace":["data\\weapons\\weapon_data.csv",
          "data\\hulls\\ship_data.csv",
          "data\\hulls\\wing_data.csv",
          "data\\config\\title_screen_variants.csv",
          "data\\campaign\\sim_opponents.csv",
          "data\\campaign\\special_items.csv",
          "data\\campaign\\econ/aztlan.json",
          "data\\campaign\\econ/arcadia.json",
          "data\\campaign\\econ/askonia.json",
          "data\\campaign\\econ/eos.json",
          "data\\campaign\\econ/isirah.json",
          "data\\campaign\\econ/canaan.json",
          "data\\campaign\\econ/magec.json",
          "data\\campaign\\econ/naraka.json",
          "data\\campaign\\econ/valhalla.json",
          "data\\campaign\\econ/samarra.json",
          "data\\campaign\\econ/mayasura.json",
          "data\\campaign\\econ/thule.json",
          "data\\campaign\\econ/tyle.json",
          "data\\campaign\\econ/yma.json",
          "data\\campaign\\econ/zagan.json",
          "data\\shipsystems\\ship_systems.csv",
          "data\\strings\\descriptions.csv",
        "data\\characters\\skills\\helmsmanship.skill",
          "data\\world\\factions\\default_fleet_type_names.json",
          "data\\world\\factions\\default_ranks.json",
          "data\\world\\factions\\default_ship_roles.json",
          "data\\world\\factions\\pirates.faction",
          "data\\world\\factions\\neutral.faction",
          "data\\world\\factions\\hegemony.faction",
          "data\\world\\factions\\independent.faction",
          "data\\world\\factions\\player.faction",
          "data\\world\\factions\\sindrian_diktat.faction",
          "data\\world\\factions\\knights_of_ludd.faction",
          "data\\world\\factions\\luddic_church.faction",
          "data\\world\\factions\\luddic_path.faction",
          "data\\world\\factions\\persean_league.faction",
          "data\\world\\factions\\tritachyon.faction",
          "data\\world\\factions\\remnants.faction",
          "data\\world\\factions\\scavengers.faction",
          "data\\world\\factions\\lions_guard.faction",
          "data\\world\\factions\\derelict.faction",
          "data\\world\\factions\\poor.faction",
          "data\\world\\factions\\sleeper.faction",
   "data\\hulls\\skins\\brawler_pather.skin",
   "data\\hulls\\skins\\brawler_tritachyon.skin",
   "data\\hulls\\skins\\buffalo_d.skin",
   "data\\hulls\\skins\\buffalo_hegemony.skin",
   "data\\hulls\\skins\\buffalo_luddic_church.skin",
   "data\\hulls\\skins\\buffalo_pirates.skin",
   "data\\hulls\\skins\\buffalo_tritachyon.skin",
   "data\\hulls\\skins\\cerberus_d.skin",
   "data\\hulls\\skins\\cerberus_d_pirates.skin",
   "data\\hulls\\skins\\cerberus_luddic_path",
   "data\\hulls\\skins\\dominator_d.skin",
   "data\\hulls\\skins\\dominator_xiv.skin",
   "data\\hulls\\skins\\eagle_d.skin",
   "data\\hulls\\skins\\eagle_xiv.skin",
   "data\\hulls\\skins\\enforcer_d.skin",
   "data\\hulls\\skins\\enforcer_d_pirates.skin",
   "data\\hulls\\skins\\enforcer_xiv.skin",
   "data\\hulls\\skins\\falcon_d.skin",
   "data\\hulls\\skins\\falcon_p.skin",
   "data\\hulls\\skins\\falcon_xiv.skin",
   "data\\hulls\\skins\\hammerhead_d.skin",
   "data\\hulls\\skins\\hermes_d.skin",
   "data\\hulls\\skins\\hound_d.skin",
   "data\\hulls\\skins\\hound_d_pirates.skin",
   "data\\hulls\\skins\\hound_hegemony.skin",
   "data\\hulls\\skins\\hound_luddic_church.skin",
   "data\\hulls\\skins\\hound_luddic_path.skin",
   "data\\hulls\\skins\\kite_d.skin",
   "data\\hulls\\skins\\kite_hegemony.skin",
   "data\\hulls\\skins\\kite_luddic_path.skin",
   "data\\hulls\\skins\\kite_original.skin",
   "data\\hulls\\skins\\kite_pirates.skin",
   "data\\hulls\\skins\\lasher_d.skin",
   "data\\hulls\\skins\\lasher_pather.skin",
   "data\\hulls\\skins\\lasher_luddic_church.skin",
   "data\\hulls\\skins\\mercury_d.skin",
   "data\\hulls\\skins\\mudskipper2.skin",
   "data\\hulls\\skins\\mule_d.skin",
   "data\\hulls\\skins\\mule_d_pirates.skin",
   "data\\hulls\\skins\\onslaught_xiv.skin",
   "data\\hulls\\skins\\sunder_d.skin",
   "data\\hulls\\skins\\tarsus_d.skin",
   "data\\hulls\\skins\\talon_tritachyon.skin",
   "data\\hulls\\skins\\afflictor_d_pirates.skin",
   "data\\hulls\\skins\\shade_d_pirates.skin",
   "data\\hulls\\skins\\wolf_d.skin",
   "data\\hulls\\skins\\wolf_d_pirates.skin",
   "data\\hulls\\skins\\wolf_hegemony.skin",
   "data\\hulls\\afflictor.ship",
   "data\\hulls\\apogee.ship",
   "data\\hulls\\astral.ship",
   "data\\hulls\\atlas.ship",
   "data\\hulls\\aurora.ship",
   "data\\hulls\\bastillon.ship",
   "data\\hulls\\berserker.ship",
   "data\\hulls\\brawler.ship",
   "data\\hulls\\brilliant.ship",
   "data\\hulls\\broadsword.ship",
   "data\\hulls\\buffalo.ship",
   "data\\hulls\\buffalo_mk2.ship",
   "data\\hulls\\centurion.ship",
   "data\\hulls\\claw.ship",
   "data\\hulls\\cobra.ship",
   "data\\hulls\\colossus.ship",
   "data\\hulls\\colossus2.ship",
   "data\\hulls\\colossus3.ship",
   "data\\hulls\\condor.ship",
   "data\\hulls\\conquest.ship",
   "data\\hulls\\constructionrig.ship",
   "data\\hulls\\dagger.ship",
   "data\\hulls\\derelict_mothership.ship",
   "data\\hulls\\derelict_mothership_bow_module.ship",
   "data\\hulls\\derelict_mothership_pod_engine_left.ship",
   "data\\hulls\\derelict_mothership_pod_m_left.ship",
   "data\\hulls\\derelict_mothership_pod_m_right.ship",
   "data\\hulls\\derelict_mothership_pod_s_right.ship",
   "data\\hulls\\derelict_mothership_sensor_mast.ship",
   "data\\hulls\\dominator.ship",
   "data\\hulls\\doom.ship",
   "data\\hulls\\dram.ship",
   "data\\hulls\\drone_assault.ship",
   "data\\hulls\\drone_borer.ship",
   "data\\hulls\\drone_pd.ship",
   "data\\hulls\\drone_pd_midline.ship",
   "data\\hulls\\drone_sensor.ship",
   "data\\hulls\\drone_terminator.ship",
   "data\\hulls\\drover.ship",
   "data\\hulls\\eagle.ship",
   "data\\hulls\\enforcer.ship",
   "data\\hulls\\falcon.ship",
   "data\\hulls\\flare.ship",
   "data\\hulls\\flash.ship",
   "data\\hulls\\fulgent.ship",
   "data\\hulls\\gargoyle.ship",
   "data\\hulls\\gemini.ship",
   "data\\hulls\\gladius.ship",
   "data\\hulls\\glimmer.ship",
   "data\\hulls\\gremlin.ship",
   "data\\hulls\\gryphon.ship",
   "data\\hulls\\guardian.ship",
   "data\\hulls\\hammerhead.ship",
   "data\\hulls\\harbringer.ship",
   "data\\hulls\\hermes.ship",
   "data\\hulls\\heron.ship",
   "data\\hulls\\hoplon.ship",
   "data\\hulls\\hound.ship",
   "data\\hulls\\hyperion.ship",
   "data\\hulls\\kite.ship",
   "data\\hulls\\lasher.ship",
   "data\\hulls\\legion.ship",
   "data\\hulls\\longbow.ship",
   "data\\hulls\\lumen.ship",
   "data\\hulls\\lux.ship",
   "data\\hulls\\medusa.ship",
   "data\\hulls\\mercury.ship",
   "data\\hulls\\merlon.ship",
   "data\\hulls\\mining_drone.ship",
   "data\\hulls\\module_armour1.ship",
   "data\\hulls\\module_armour3.ship",
   "data\\hulls\\module_armour2.ship",
   "data\\hulls\\module_armour4.ship",
   "data\\hulls\\module_armour5.ship",
   "data\\hulls\\module_bastion_pd1.ship",
   "data\\hulls\\module_bastion_pd1_lowtech.ship",
   "data\\hulls\\module_bastion1_lowtech.ship",
   "data\\hulls\\module_blocker1.ship",
   "data\\hulls\\module_blocker2.ship",
   "data\\hulls\\module_blocker2b.ship",
   "data\\hulls\\module_blocker2c.ship",
   "data\\hulls\\module_citadel1_lowtech.ship",
   "data\\hulls\\module_decor_midline1.ship",
   "data\\hulls\\module_decor_midline2.ship",
   "data\\hulls\\module_hightech_armour.ship",
   "data\\hulls\\module_hightech_attack.ship",
   "data\\hulls\\module_hightech_citadel.ship",
   "data\\hulls\\module_hightech_decor.ship",
   "data\\hulls\\module_hightech_hangar.ship",
   "data\\hulls\\module_hightech_shield.ship",
   "data\\hulls\\module_hightech_strut.ship",
   "data\\hulls\\module_large1_lowtech.ship",
   "data\\hulls\\module_large2_lowtech.ship",
   "data\\hulls\\module_midline_bastion.ship",
   "data\\hulls\\module_midline_broadside.ship",
   "data\\hulls\\module_midline_citadel.ship",
   "data\\hulls\\module_midline_support.ship",
   "data\\hulls\\monitor.ship",
   "data\\hulls\\mora.ship",
   "data\\hulls\\mudskipper.ship",
   "data\\hulls\\mule.ship",
   "data\\hulls\\nebula.ship",
   "data\\hulls\\omen.ship",
   "data\\hulls\\ox.ship",
   "data\\hulls\\odyssey.ship",
   "data\\hulls\\onslaught.ship",
   "data\\hulls\\paragon.ship",
   "data\\hulls\\perdition.ship",
   "data\\hulls\\phaeton.ship",
   "data\\hulls\\picket.ship",
   "data\\hulls\\piranha.ship",
   "data\\hulls\\platform1.ship",
   "data\\hulls\\prometheus.ship",
   "data\\hulls\\radiant.ship",
   "data\\hulls\\rampart.ship",
   "data\\hulls\\ravelin.ship",
   "data\\hulls\\remnant_armour1.ship",
   "data\\hulls\\remnant_armour2.ship",
   "data\\hulls\\remnant_armour3.ship",
   "data\\hulls\\remnant_hangar1.ship",
   "data\\hulls\\remnant_shield1.ship",
   "data\\hulls\\remnant_shield2.ship",
   "data\\hulls\\remnant_station1.ship",
   "data\\hulls\\remnant_station2.ship",
   "data\\hulls\\remnant_weapon_platform1.ship",
   "data\\hulls\\remnant_weapon_platform2.ship",
   "data\\hulls\\remnant_weapon_platform3.ship",
   "data\\hulls\\scarab.ship",
   "data\\hulls\\scintilla.ship",
   "data\\hulls\\sentry.ship",
   "data\\hulls\\shade.ship",
   "data\\hulls\\shepherd.ship",
   "data\\hulls\\shrike.ship",
   "data\\hulls\\shuttlepod.ship",
   "data\\hulls\\spark.ship",
   "data\\hulls\\starliner.ship",
   "data\\hulls\\station_small.ship",
   "data\\hulls\\station1.ship",
   "data\\hulls\\station1_hightech.ship",
   "data\\hulls\\station1_midline.ship",
   "data\\hulls\\station2.ship",
   "data\\hulls\\station2_hightech.ship",
   "data\\hulls\\station2_midline.ship",
   "data\\hulls\\station3.ship",
   "data\\hulls\\station3_hightech.ship",
   "data\\hulls\\station3_midline.ship",
   "data\\hulls\\sunder.ship",
   "data\\hulls\\talon.ship",
   "data\\hulls\\tarsus.ship",
   "data\\hulls\\tempest.ship",
   "data\\hulls\\thunder.ship",
   "data\\hulls\\trident.ship",
   "data\\hulls\\valkyrie.ship",
   "data\\hulls\\venture.ship",
   "data\\hulls\\vigilance.ship",
   "data\\hulls\\warden.ship",
   "data\\hulls\\warhound.ship",
   "data\\hulls\\warthog.ship",
   "data\\hulls\\wasp.ship",
   "data\\hulls\\wayfarer.ship",
   "data\\hulls\\wolf.ship",
   "data\\hulls\\xyphos.ship",
   "data\\weapons\\amblaster.wpn",
   "data\\weapons\\annihilator.wpn",
   "data\\weapons\\annihilator_fighter.wpn",
   "data\\weapons\\annihilatorpod.wpn",
   "data\\weapons\\arbalest.wpn",
   "data\\weapons\\atropos.wpn",
   "data\\weapons\\atropos_single.wpn",
   "data\\weapons\\autopulse.wpn",
   "data\\weapons\\bomb.wpn",
   "data\\weapons\\chaingun.wpn",
   "data\\weapons\\clusterbomb.wpn",
   "data\\weapons\\cyclone.wpn",
   "data\\weapons\\devastator.wpn",
   "data\\weapons\\dualflak.wpn",
   "data\\weapons\\flak.wpn",
   "data\\weapons\\fragbomb.wpn",
   "data\\weapons\\gauss.wpn",
   "data\\weapons\\gravitonbeam.wpn",
   "data\\weapons\\guardian.wpn",
   "data\\weapons\\hammer.wpn",
   "data\\weapons\\hammer_single.wpn",
   "data\\weapons\\hammerrack.wpn",
   "data\\weapons\\harpoon.wpn",
   "data\\weapons\\harpoon_single.wpn",
   "data\\weapons\\harpoonpod.wpn",
   "data\\weapons\\heatseeker.wpn",
   "data\\weapons\\heavyac.wpn",
   "data\\weapons\\heavyblaster.wpn",
   "data\\weapons\\heavymauler.wpn",
   "data\\weapons\\heavymg.wpn",
   "data\\weapons\\heavymortar.wpn",
   "data\\weapons\\heavyneedler.wpn",
   "data\\weapons\\hellbore.wpn",
   "data\\weapons\\hephag.wpn",
   "data\\weapons\\hil.wpn",
   "data\\weapons\\hurricane.wpn",
   "data\\weapons\\hveldriver.wpn",
   "data\\weapons\\interdictorbeam.wpn",
   "data\\weapons\\ionbeam.wpn",
   "data\\weapons\\ioncannon.wpn",
   "data\\weapons\\ioncannon_fighter.wpn",
   "data\\weapons\\ionpulser.wpn",
   "data\\weapons\\irpulse.wpn",
   "data\\weapons\\irpulse_fighter.wpn",
   "data\\weapons\\lightac.wpn",
   "data\\weapons\\lightag.wpn",
   "data\\weapons\\lightdualac.wpn",
   "data\\weapons\\lightdualmg.wpn",
   "data\\weapons\\lightmg.wpn",
   "data\\weapons\\lightmortar.wpn",
   "data\\weapons\\lightneedler.wpn",
   "data\\weapons\\locust.wpn",
   "data\\weapons\\lrpdlaser.wpn",
   "data\\weapons\\mark9.wpn",
   "data\\weapons\\minelayer1.wpn",
   "data\\weapons\\minelayer2.wpn",
   "data\\weapons\\miningblaster.wpn",
   "data\\weapons\\mininglaser.wpn",
   "data\\weapons\\mjolnir.wpn",
   "data\\weapons\\multineedler.wpn",
   "data\\weapons\\pdburst.wpn",
   "data\\weapons\\pdlaser.wpn",
   "data\\weapons\\phasebeam.wpn",
   "data\\weapons\\phasecl.wpn",
   "data\\weapons\\phasecl_bomber.wpn",
   "data\\weapons\\pilum.wpn",
   "data\\weapons\\plasma.wpn",
   "data\\weapons\\pulselaser.wpn",
   "data\\weapons\\railgun.wpn",
   "data\\weapons\\reaper.wpn",
   "data\\weapons\\sabot.wpn",
   "data\\weapons\\sabot_single.wpn",
   "data\\weapons\\sabotpod.wpn",
   "data\\weapons\\salamanderpod.wpn",
   "data\\weapons\\shredder.wpn",
   "data\\weapons\\squall.wpn",
   "data\\weapons\\swarmer.wpn",
   "data\\weapons\\swarmer_fighter.wpn",
   "data\\weapons\\tachyonlance.wpn",
   "data\\weapons\\taclaser.wpn",
   "data\\weapons\\tpc.wpn",
   "data\\weapons\\typhoon.wpn",
   "data\\weapons\\vulcan.wpn",
   "data\\weapons\\proj\\amblaster_shot.proj",
   "data\\weapons\\proj\\annihilator_rocket.proj",
   "data\\weapons\\proj\\arbalest_shot.proj",
   "data\\weapons\\proj\\atropos_torp.proj",
   "data\\weapons\\proj\\autopulse_shot.proj",
   "data\\weapons\\proj\\bomb_proj.proj",
   "data\\weapons\\proj\\chaingun_shot.proj",
   "data\\weapons\\proj\\clusterbomb_proj.proj",
   "data\\weapons\\proj\\devastator_shot.proj",
   "data\\weapons\\proj\\dualflak_shot.proj",
   "data\\weapons\\proj\\flak_shot.proj",
   "data\\weapons\\proj\\fragbomb_proj.proj",
   "data\\weapons\\proj\\gauss_shot.proj",
   "data\\weapons\\proj\\hammer_torp.proj",
   "data\\weapons\\proj\\harpoon_mrm.proj",
   "data\\weapons\\proj\\heatseeker_mrm.proj",
   "data\\weapons\\proj\\heavyac_shot.proj",
   "data\\weapons\\proj\\heavyblaster_shot.proj",
   "data\\weapons\\proj\\heavymauler_shot.proj",
   "data\\weapons\\proj\\heavymg_shot.proj",
   "data\\weapons\\proj\\heavymortar_shot.proj",
   "data\\weapons\\proj\\heavyneedler_shot.proj",
   "data\\weapons\\proj\\hellbore_shot.proj",
   "data\\weapons\\proj\\hephag_shot.proj",
   "data\\weapons\\proj\\hveldriver_shot.proj",
   "data\\weapons\\proj\\ioncannon_shot.proj",
   "data\\weapons\\proj\\ionpulser_shot.proj",
   "data\\weapons\\proj\\irpulse_shot.proj",
   "data\\weapons\\proj\\lightac_shot.proj",
   "data\\weapons\\proj\\lightag_shot.proj",
   "data\\weapons\\proj\\lightdualac_shot.proj",
   "data\\weapons\\proj\\lightmg_shot.proj",
   "data\\weapons\\proj\\lightmortar_shot.proj",
   "data\\weapons\\proj\\lightneedler_shot.proj",
   "data\\weapons\\proj\\locust_srm.proj",
   "data\\weapons\\proj\\mark9_shot.proj",
   "data\\weapons\\proj\\minelayer_mine.proj",
   "data\\weapons\\proj\\minelayer_mine_heavy.proj",
   "data\\weapons\\proj\\miningblaster_shot.proj",
   "data\\weapons\\proj\\mirv_warhead.proj",
   "data\\weapons\\proj\\mjolnir_shot.proj",
   "data\\weapons\\proj\\multineedler_shot.proj",
   "data\\weapons\\proj\\phase_charge.proj",
   "data\\weapons\\proj\\plasma_shot.proj",
   "data\\weapons\\proj\\pulselaser_shot.proj",
   "data\\weapons\\proj\\railgun_shot.proj",
   "data\\weapons\\proj\\reaper_torp.proj",
   "data\\weapons\\proj\\sabot_srm.proj",
   "data\\weapons\\proj\\shredder_shot.proj",
   "data\\weapons\\proj\\squall_rocket.proj",
   "data\\weapons\\proj\\sabot_warhead.proj",
   "data\\weapons\\proj\\tachyonlance_shot.proj",
   "data\\weapons\\proj\\tpc_shot.proj",
   "data\\weapons\\proj\\type_1_lrm.proj",
   "data\\weapons\\proj\\type_1_mirv.proj",
   "data\\weapons\\proj\\type_1_mirv_empty.proj",
   "data\\weapons\\proj\\type_1_srm.proj",
   "data\\weapons\\proj\\vulcan_shot.proj",
   "data\\variants\\aurora\\aurora_Assault.variant",
   "data\\variants\\aurora\\aurora_Assault_Support.variant",
   "data\\variants\\aurora\\aurora_Balanced.variant",
   "data\\variants\\aurora\\aurora_Escort.variant",
   "data\\variants\\aurora\\aurora_FS.variant",
   "data\\variants\\aurora\\aurora_Strike.variant",
   "data\\variants\\brawler\\brawler_pather_Raider.variant",
   "data\\variants\\brawler\\brawler_tritachyon_Standard.variant",
   "data\\variants\\buffalo\\buffalo_d_Standard.variant",
   "data\\variants\\buffalo\\buffalo_hegemony_Standard.variant",
   "data\\variants\\buffalo\\buffalo_luddic_church_Standard.variant",
   "data\\variants\\buffalo\\buffalo_pirates_Standard.variant",
   "data\\variants\\buffalo\\buffalo_Standard.variant",
   "data\\variants\\buffalo\\buffalo_tritachyon_Standard.variant",
   "data\\variants\\centurion\\centurion_Assault.variant",
   "data\\variants\\centurion\\centurion_Starting.variant",
   "data\\variants\\cerberus\\cerberus_d_pirates_Shielded.variant",
   "data\\variants\\cerberus\\cerberus_d_pirates_Standard.variant",
   "data\\variants\\cerberus\\cerberus_d_Standard.variant",
   "data\\variants\\cerberus\\cerberus_Hardened.variant",
   "data\\variants\\cerberus\\cerberus_luddic_path_Attack.variant",
   "data\\variants\\cerberus\\cerberus_Overdriven.variant",
   "data\\variants\\cerberus\\cerberus_Shielded.variant",
   "data\\variants\\cerberus\\cerberus_Standard.variant",
   "data\\variants\\cerberus\\cerberus_Starting.variant",
   "data\\variants\\conquest\\conquest_Elite.variant",
   "data\\variants\\conquest\\conquest_Standard.variant",
   "data\\variants\\derelict\\derelict_mothership_bow_module_Standard.variant",
   "data\\variants\\derelict\\derelict_mothership_pod_engine_left_Standard.variant",
   "data\\variants\\derelict\\derelict_mothership_pod_m_left_Standard.variant",
   "data\\variants\\derelict\\derelict_mothership_pod_m_right_Standard.variant",
   "data\\variants\\derelict\\derelict_mothership_pod_s_right_Standard.variant",
   "data\\variants\\derelict\\derelict_mothership_sensor_mast_Standard.variant",
   "data\\variants\\derelict\\guardian_Standard.variant",
   "data\\variants\\derelict\\rampart_Standard.variant",
   "data\\variants\\dominator\\dominator_AntiCV.variant",
   "data\\variants\\dominator\\dominator_Assault.variant",
   "data\\variants\\dominator\\dominator_d_Assault.variant",
   "data\\variants\\dominator\\dominator_Fighter_Support.variant",
   "data\\variants\\dominator\\dominator_Outdated.variant",
   "data\\variants\\dominator\\dominator_Support.variant",
   "data\\variants\\dominator\\dominator_XIV_Elite.variant",
   "data\\variants\\drones\\drone_assault.variant",
   "data\\variants\\drones\\drone_borer.variant",
   "data\\variants\\drones\\drone_pd.variant",
   "data\\variants\\drones\\drone_pd_midline.variant",
   "data\\variants\\drones\\drone_sensor.variant",
   "data\\variants\\drones\\drone_terminator.variant",
   "data\\variants\\eagle\\eagle_Assault.variant",
   "data\\variants\\eagle\\eagle_Balanced.variant",
   "data\\variants\\eagle\\eagle_d_Assault.variant",
   "data\\variants\\eagle\\eagle_xiv_Elite.variant",
   "data\\variants\\enforcer\\enforcer_Assault.variant",
   "data\\variants\\enforcer\\enforcer_Balanced.variant",
   "data\\variants\\enforcer\\enforcer_CS.variant",
   "data\\variants\\enforcer\\enforcer_d_pirates_Strike.variant",
   "data\\variants\\enforcer\\enforcer_d_Strike.variant",
   "data\\variants\\enforcer\\enforcer_Elite.variant",
   "data\\variants\\enforcer\\enforcer_Escort.variant",
   "data\\variants\\enforcer\\enforcer_Fighter_Support.variant",
   "data\\variants\\enforcer\\enforcer_Outdated.variant",
   "data\\variants\\enforcer\\enforcer_Overdriven.variant",
   "data\\variants\\enforcer\\enforcer_XIV_Elite.variant",
   "data\\variants\\falcon\\falcon_Attack.variant",
   "data\\variants\\falcon\\falcon_CS.variant",
   "data\\variants\\falcon\\falcon_d_CS.variant",
   "data\\variants\\falcon\\falcon_p_Strike.variant",
   "data\\variants\\falcon\\falcon_xiv_Elite.variant",
   "data\\variants\\falcon\\falcon_xiv_Escort.variant",
   "data\\variants\\fighters\\broadsword_Fighter.variant",
   "data\\variants\\fighters\\claw_Fighter.variant",
   "data\\variants\\fighters\\cobra_Bomber.variant",
   "data\\variants\\fighters\\dagger_Bomber.variant",
   "data\\variants\\fighters\\gladius_Fighter.variant",
   "data\\variants\\fighters\\khopesh_Bomber.variant",
   "data\\variants\\fighters\\longbow_Support.variant",
   "data\\variants\\fighters\\mining_drone_Standard.variant",
   "data\\variants\\fighters\\perdition_Bomber.variant",
   "data\\variants\\fighters\\piranha_Bomber.variant",
   "data\\variants\\fighters\\talon_Interceptor.variant",
   "data\\variants\\fighters\\thunder_Fighter.variant",
   "data\\variants\\fighters\\trident_Bomber.variant",
   "data\\variants\\fighters\\warthog_Fighter.variant",
   "data\\variants\\fighters\\wasp_Interceptor.variant",
   "data\\variants\\fighters\\xyphos_Fighter.variant",
   "data\\variants\\gryphon\\gryphon_FS.variant",
   "data\\variants\\gryphon\\gryphon_Standard.variant",
   "data\\variants\\hammerhead\\hammerhead_Balanced.variant",
   "data\\variants\\hammerhead\\hammerhead_d_CS.variant",
   "data\\variants\\hammerhead\\hammerhead_Elite.variant",
   "data\\variants\\hammerhead\\hammerhead_Overdriven.variant",
   "data\\variants\\hammerhead\\hammerhead_Support.variant",
   "data\\variants\\hammerhead\\hammerhead_Tutorial.variant",
   "data\\variants\\harbinger\\harbinger_Strike.variant",
   "data\\variants\\hermes\\hermes_d_Standard.variant",
   "data\\variants\\hermes\\hermes_FS.variant",
   "data\\variants\\hermes\\hermes_Standard.variant",
   "data\\variants\\hound\\hound_d_pirates_Shielded.variant",
   "data\\variants\\hound\\hound_d_pirates_Standard.variant",
   "data\\variants\\hound_d_pirates_Overdriven.variant",
   "data\\variants\\hound\\hound_d_Standard.variant",
   "data\\variants\\hound\\hound_hegemony_Standard.variant",
   "data\\variants\\hound\\hound_luddic_church_Standard.variant",
   "data\\variants\\hound\\hound_luddic_path_Attack.variant",
   "data\\variants\\hound\\hound_Overdriven.variant",
   "data\\variants\\hound\\hound_Standard.variant",
   "data\\variants\\kite\\kite_Interceptor.variant",
   "data\\variants\\kite\\kite_luddic_path_Raider.variant",
   "data\\variants\\kite\\kite_luddic_path_Strike.variant",
   "data\\variants\\kite\\kite_pirates_Raider.variant",
   "data\\variants\\kite\\kite_Standard.variant",
   "data\\variants\\kite\\kite_Starting.variant",
   "data\\variants\\kite\\kite_Stock.variant",
   "data\\variants\\kite\\kite_Support.variant",
   "data\\variants\\lasher\\lasher_Assault.variant",
   "data\\variants\\lasher\\lasher_CS.variant",
   "data\\variants\\lasher\\lasher_d_CS.variant",
   "data\\variants\\lasher\\lasher_luddic_church_Standard.variant",
   "data\\variants\\lasher\\lasher_luddic_path_Raider.variant",
   "data\\variants\\lasher\\lasher_Overdriven.variant",
   "data\\variants\\lasher\\lasher_PD.variant",
   "data\\variants\\lasher\\lasher_Standard.variant",
   "data\\variants\\lasher\\lasher_Starting.variant",
   "data\\variants\\lasher\\lasher_Strike.variant",
   "data\\variants\\legion\\legion_Assault.variant",
   "data\\variants\\legion\\legion_Escort.variant",
   "data\\variants\\legion\\legion_FS.variant",
   "data\\variants\\legion\\legion_Strike.variant",
   "data\\variants\\legion\\legion_xiv_Elite.variant",
   "data\\variants\\mercury\\mercury_Attack.variant",
   "data\\variants\\mercury\\mercury_d_Standard.variant",
   "data\\variants\\mercury\\mercury_FS.variant",
   "data\\variants\\mercury\\mercury_PD.variant",
   "data\\variants\\mercury\\mercury_Standard.variant",
   "data\\variants\\mora\\mora_Assault.variant",
   "data\\variants\\mora\\mora_Strike.variant",
   "data\\variants\\mora\\mora_Support.variant",
   "data\\variants\\mule\\mule_d_pirates_Smuggler.variant",
   "data\\variants\\mule\\mule_d_pirates_Standard.variant",
   "data\\variants\\mule\\mule_d_Standard.variant",
   "data\\variants\\mule\\mule_Fighter_Support.variant",
   "data\\variants\\mule\\mule_Standard.variant",
   "data\\variants\\mule\\mule_Starting.variant",
   "data\\variants\\onslaught\\onslaught_Elite.variant",
   "data\\variants\\onslaught\\onslaught_Standard.variant",
   "data\\variants\\onslaught\\onslaught_Outdated.variant",
   "data\\variants\\onslaught\\onslaught_xiv_Elite.variant",
   "data\\variants\\paragon\\paragon_Elite.variant",
   "data\\variants\\paragon\\paragon_Escort.variant",
   "data\\variants\\paragon\\paragon_Raider.variant",
   "data\\variants\\remnant\\brilliant_Standard.variant",
   "data\\variants\\remnant\\flash_Bomber.variant",
   "data\\variants\\remnant\\fulgent_Assault.variant",
   "data\\variants\\remnant\\fulgent_Support.variant",
   "data\\variants\\remnant\\glimmer_Assault.variant",
   "data\\variants\\remnant\\glimmer_Support.variant",
   "data\\variants\\remnant\\lumen_Standard.variant",
   "data\\variants\\remnant\\lux_Fighter.variant",
   "data\\variants\\remnant\\radiant_Standard.variant",
   "data\\variants\\remnant\\radiant_Strike.variant",
   "data\\variants\\remnant\\remnant_armour1_Standard.variant",
   "data\\variants\\remnant\\remnant_armour2_Standard.variant",
   "data\\variants\\remnant\\remnant_armour3_Standard.variant",
   "data\\variants\\remnant\\remnant_hangar1_Standard.variant",
   "data\\variants\\remnant\\remnant_hangar1_Strike.variant",
   "data\\variants\\remnant\\remnant_shield1_Standard.variant",
   "data\\variants\\remnant\\remnant_shield2_Standard.variant",
   "data\\variants\\remnant\\remnant_weapon_platform1_Standard.variant",
   "data\\variants\\remnant\\remnant_weapon_platform2_Standard.variant",
   "data\\variants\\remnant\\remnant_weapon_platform3_Standard.variant",
   "data\\variants\\remnant\\scintilla_Strike.variant",
   "data\\variants\\remnant\\scintilla_Support.variant",
   "data\\variants\\remnant\\spark_Interceptor.variant",
   "data\\variants\\scarab\\scarab_Experimental.variant",
   "data\\variants\\scarab\\scarab_Starting.variant",
   "data\\variants\\stations\\gargoyle_Standard.variant",
   "data\\variants\\stations\\merlon_Standard.variant",
   "data\\variants\\stations\\module_armour1_Standard.variant",
   "data\\variants\\stations\\module_armour2_Standard.variant",
   "data\\variants\\stations\\module_armour3_Standard.variant",
   "data\\variants\\stations\\module_armour4_Standard.variant",
   "data\\variants\\stations\\module_armour5_Standard.variant",
   "data\\variants\\stations\\module_bastion_pd1_Standard.variant",
   "data\\variants\\stations\\module_bastion1_lowtech_Standard.variant",
   "data\\variants\\stations\\module_blocker1_Standard.variant",
   "data\\variants\\stations\\module_blocker2_Standard.variant",
   "data\\variants\\stations\\module_blocker2b_Standard.variant",
   "data\\variants\\stations\\module_blocker2c_Standard.variant",
   "data\\variants\\stations\\module_citadel1_lowtech_Standard.variant",
   "data\\variants\\stations\\module_decor_midline1_Standard.variant",
   "data\\variants\\stations\\module_decor_midline2_Standard.variant",
   "data\\variants\\stations\\module_hightech_armour_Standard.variant",
   "data\\variants\\stations\\module_hightech_attack_minelayer_Standard.variant",
   "data\\variants\\stations\\module_hightech_attack_Standard.variant",
   "data\\variants\\stations\\module_hightech_citadel_Standard.variant",
   "data\\variants\\stations\\module_hightech_hangar_Standard.variant",
   "data\\variants\\stations\\module_hightech_shield_Standard.variant",
   "data\\variants\\stations\\module_hightech_strut_Standard.variant",
   "data\\variants\\stations\\module_large1_lowtech_Standard.variant",
   "data\\variants\\stations\\module_large2_lowtech_Standard.variant",
   "data\\variants\\stations\\module_midline_bastion_Standard1.variant",
   "data\\variants\\stations\\module_midline_bastion_Standard2.variant",
   "data\\variants\\stations\\module_midline_broadside_Standard.variant",
   "data\\variants\\stations\\module_midline_citadel_Standard.variant",
   "data\\variants\\stations\\module_midline_support_Standard.variant",
   "data\\variants\\stations\\platform1_Standard.variant",
   "data\\variants\\stations\\ravelin_Standard.variant",
   "data\\variants\\stations\\remnant_station2_Damaged.variant",
   "data\\variants\\stations\\remnant_station2_Standard.variant",
   "data\\variants\\stations\\station_derelict_survey_mothership_Standard.variant",
   "data\\variants\\stations\\station_small_Standard.variant",
   "data\\variants\\stations\\station1_hightech_Standard.variant",
   "data\\variants\\stations\\station1_midline_Standard.variant",
   "data\\variants\\stations\\station1_Standard.variant",
   "data\\variants\\stations\\station2_hightech_Standard.variant",
   "data\\variants\\stations\\station2_midline_Standard.variant",
   "data\\variants\\stations\\station2_Standard.variant",
   "data\\variants\\stations\\station3_hightech_Standard.variant",
   "data\\variants\\stations\\station3_midline_Standard.variant",
   "data\\variants\\stations\\station3_Standard.variant",
   "data\\variants\\sunder\\sunder_Assault.variant",
   "data\\variants\\sunder\\sunder_CS.variant",
   "data\\variants\\sunder\\sunder_d_Assault.variant",
   "data\\variants\\sunder\\sunder_Overdriven.variant",
   "data\\variants\\tarsus\\tarsus_d_Standard.variant",
   "data\\variants\\tarsus\\tarsus_Standard.variant",
   "data\\variants\\venture\\venture_Balanced.variant",
   "data\\variants\\venture\\venture_Outdated.variant",
   "data\\variants\\wayfarer\\wayfarer_Standard.variant",
   "data\\variants\\wayfarer\\wayfarer_Starting.variant",
   "data\\variants\\wolf\\wolf_Assault.variant",
   "data\\variants\\wolf\\wolf_CS.variant",
   "data\\variants\\wolf\\wolf_d_Attack.variant",
   "data\\variants\\wolf\\wolf_d_pirates_Attack.variant",
   "data\\variants\\wolf\\wolf_hegemony_Assault.variant",
   "data\\variants\\wolf\\wolf_hegemony_CS.variant",
   "data\\variants\\wolf\\wolf_hegemony_PD.variant",
   "data\\variants\\wolf\\wolf_Overdriven.variant",
   "data\\variants\\wolf\\wolf_PD.variant",
   "data\\variants\\wolf\\wolf_Starting.variant",
   "data\\variants\\wolf\\wolf_Strike.variant",
   "data\\variants\\afflictor_d_pirates_Strike.variant",
   "data\\variants\\afflictor_Strike.variant",
   "data\\variants\\apogee_Balanced.variant",
   "data\\variants\\apogee_Starting.variant",
   "data\\variants\\astral_Attack.variant",
   "data\\variants\\astral_Elite.variant",
   "data\\variants\\astral_Strike.variant",
   "data\\variants\\atlas_Standard.variant",
   "data\\variants\\bastillon_Standard.variant",
   "data\\variants\\berserker_Assault.variant",
   "data\\variants\\brawler_Assault.variant",
   "data\\variants\\brawler_Elite.variant",
   "data\\variants\\brawler_Starting.variant",
   "data\\variants\\buffalo2_Fighter_Support.variant",
   "data\\variants\\buffalo2_FS.variant",
   "data\\variants\\colossus_Standard.variant",
   "data\\variants\\colossus2_Pather.variant",
   "data\\variants\\colossus3_Pirate.variant",
   "data\\variants\\condor_Attack.variant",
   "data\\variants\\condor_Strike.variant",
   "data\\variants\\condor_Support.variant",
   "data\\variants\\crig_Standard.variant",
   "data\\variants\\defender_PD.variant",
   "data\\variants\\doom_Strike.variant",
   "data\\variants\\dram_Light.variant",
   "data\\variants\\doom_Support.variant",
   "data\\variants\\drover_Starting.variant",
   "data\\variants\\drover_Strike.variant",
   "data\\variants\\gemini_Standard.variant",
   "data\\variants\\gremlin_d_pirates_Strike.variant",
   "data\\variants\\gremlin_luddic_path_Strike.variant",
   "data\\variants\\gremlin_Strike.variant",
   "data\\variants\\heron_Attack.variant",
   "data\\variants\\heron_Strike.variant",
   "data\\variants\\hound_d_pirates_Overdriven.variant",
   "data\\variants\\hyperion_Attack.variant",
   "data\\variants\\hyperion_Strike.variant",
   "data\\variants\\medusa_Attack.variant",
   "data\\variants\\medusa_CS.variant",
   "data\\variants\\medusa_PD.variant",
   "data\\variants\\medusa_Starting.variant",
   "data\\variants\\monitor_Escort.variant",
   "data\\variants\\monitor_Starting.variant",
   "data\\variants\\mudskipper_Standard.variant",
   "data\\variants\\mudskipper2_CS.variant",
   "data\\variants\\mudskipper2_Hellbore.variant",
   "data\\variants\\nebula_Standard.variant",
   "data\\variants\\odyssey_Balanced.variant",
   "data\\variants\\omen_PD.variant",
   "data\\variants\\ox_Standard.variant",
   "data\\variants\\phaeton_Standard.variant",
   "data\\variants\\picket_Assault.variant",
   "data\\variants\\prometheus_Super.variant",
   "data\\variants\\sentry_FS.variant",
   "data\\variants\\shade_Assault.variant",
   "data\\variants\\shade_d_pirates_Assault.variant",
   "data\\variants\\shepherd_Frontier.variant",
   "data\\variants\\shepherd_Starting.variant",
   "data\\variants\\shrike_Attack.variant",
   "data\\variants\\shrike_Support.variant",
   "data\\variants\\starliner_Standard.variant",
   "data\\variants\\tempest_Attack.variant",
   "data\\variants\\tempest_Starting.variant",
   "data\\variants\\valkyrie_Elite.variant",
   "data\\variants\\vigilance_AP.variant",
   "data\\variants\\vigilance_FS.variant",
   "data\\variants\\vigilance_Standard.variant",
   "data\\variants\\vigilance_Starting.variant",
   "data\\variants\\vigilance_Strike.variant",
   "data\\variants\\warden_Defense.variant"]
[close]

*EDIT* Corrected a typo in one of the .skin file overrides that would prevent it from applying.

18
Bug Reports & Support / Disappearing fighter wings
« on: February 25, 2018, 12:00:25 PM »
Built-In fighter wings on ships present in the player's fleet that share ids with active inventory fighter wings cause those wings in the inventory to vanish when visiting the refit screen.

In vanilla, this shouldn't be a huge issue, at least for the moment. Can't remember, does any ship have built in mining drones? If so, then mining drones may disappear. Still, figured I'd report it.

19




Warning: This is a Beta and is not guaranteed to be bug free. Please report any encountered bugs on this thread. Thanks and have fun!

The experimental version is under "Optional Files" on the Nexus Mods site. It is not included in the mirror but will be placed there assuming I merge the changes into the current release. Thanks for playing!

Known Beta Issues
- Descriptions are either missing or inaccurate.

Important Please Read:   Archean Order is a TOTAL CONVERSION and this means that it changes/overrides a lot of core files. This makes adding additional mods have a few limitations that could otherwise cause crashes or unintended behavior. See compatibility details.*

If Archean Order is on the mod list and you are using other mods and encounter what looks like a bug, please do not post on any thread other than this one for bug/behavior reports. Even if the source seems to clearly be another mod in the stack trace/log, the TC nature could be causing something unintended and you should not bother the mod author until I can verify I am not causing it. Thanks for reading this and have fun!

*Compatibility details for adding additional mods: Faction mods are technically compatible and won't crash in the majority of cases, however, they are not balanced around Archean Order's combat balance because they are balanced around the standard Starsector combat balance. Including mod factions might cause weird things to happen or imbalance Nex campaigns so results and experiences may vary. Any mods that change skills will likely not work though a workaround is available and you can ask on the forum thread or through PM and I will help you with it. Feature mods and utility mods are generally ok and will not break the TC's combat balance though they may change campaign experiences.

-----See Instructions Below-----

Directions to Enable Nexerelin and Other Non-Utility Mods:
Spoiler
1) Go to mod_info.json located directly within the the first level of the mod directory and open it.

2) Change the value 
Code
 "totalConversion":"true"
to: 
Code
 "totalConversion":"false",

3) You can now enable the other mods when running the game.
[close]

Feature mods that *shouldn't* break the TC balance.
Nexerelin
Starship Legends
Combat Chatter
Unknown Skies
Ruthless Sector
Second Wave Options
Grand Sector
Commissioned Crews
Common Radar
Fuel Siphoning
Supply Forging
Sundiving
SpeedUp (Warning: Increasing combat speed above 2X reduces projectile accuracy to a large degree and will break things. See SpeedUp's main page for details.)
Updated Rotary Weapons
Automatic Orders
Hyperdrive
Player Station Construction
Boggled's Terraforming Mod
Skilled Up
Better Colonies

Troubleshooting
Spoiler

1) If you are experiencing errors with markets without NPCs and major shortages/lack of supply and demand, see this thread for a solution (at the bottom of the first page). Please also get back to me with the relevant details asked for so that I can report it- in order to help reduce the number of instances of this error in the next Starsector update.

https://fractalsoftworks.com/forum/index.php?topic=17278.0

[close]

Older versions
Spoiler

Version 1.2.1d (.8 version of Starsector)

[close]

Download and Installation Instructions for New Players
Spoiler
   -   Upon downloading the mod by clicking the link above, unzip it and click through the folders until viewing a single folder above all the data. (So the file path would read "Archean Order TC v0.8.1a/data" etc)

   -   Next, drag the folders to the "Mods" directory. It should be located under something like: "C Drive/Program Files/Fractal Softworks/Starsector/Mods" See the image in the spoiler below for an example of what the final installation directory should look like.

Spoiler
-
[close]


   -   Run the game. When the first screen appears, at the very bottom click "Mods" and a list of installed mods should appear. As long as you followed the above steps, you should see "Archean Order". For reference see the photos below in the spoiler.

Spoiler
-
[close]

   -   As displayed in the image above, other mods you may have installed will also show up here (utility mods may still be selected).

   -   Remember, "Archean Order" is a TOTAL CONVERSION -- See the warning under Enabling Nexerelin above for mod merging information before disabling the TC behavior.

   -   Checkbox "Archean Order" and click "Save".

   -   Click "Play Starsector" and enjoy the Archean Order mod!
[close]


Mod Features
     -     More Dialogue Options for Fleet Encounters
            - >   Request commodities and war funds from anyone you meet.
            - >   Negotiate cease-fires with hostile captains or bribe your way out of combat situations.
            - >   Demand commodities or payment from fleets using your strength and influence.
            - >   Get tactical advice from your officers, who will have an opinion of you that will effect their dialogue and performance. **In Development**
            - >   Negotiate with allies to reinforce your position or attack enemy factions' fleets and installations. **In Development**
            - >   Use marines to protect your commodities and prevent boarding attacks on your vessels. **In Development**

     -     4 New Factions
            - >   New thematic factions with distinctive ships, weapons, culture, backstory and tactics.
            - >   Over 15 additional markets including 2 new systems of various factions added to the Core Worlds campaign map.
            - >   New and existing factions will react differently to your dialogue choices based on their motives, personality and other factors.
            - >   New factions have their own music, portraits, tech and skins.
            - >   Explore the sector to learn more and find your play style.
            - >   A customized tutorial that introduces new mechanics, ships and factions. **In Development**
            - >   A story introducing a few of the new and existing factions' characters. **In Development**

     -     New Combat Mechanics and Tactics
            - >   Over Over 50 types of fighters.
            - >   Fighters are smaller, faster, more numerous, and can deal extra damage to ships' weapons and engines.
            - >   Over 130 weapons.
            - >   Smaller weapons, more weapons per ship- designed to mimic a cinematic combat experience inspired from multiple movies and games.
            - >   New ships spread across all hull classes and factions.
            - >   650+ variants.
            - >   New paintjobs for existing ships - sometimes dramatically changing features and load-out options.

     -     New Starting Options and Role-Playing Scenarios
            - >   More starting ship choices and options based around play-styles.
            - >   Start as a pirate, with a reputation throughout the sector and a small raider wolfpack.
            - >   Start as a mercenary, with a powerful financial backer and a small elite strike force.
            - >   Custom tutorial options for each start, teaching new techniques and skills to succeed in that role. **In Development**

     -     An Emphasis on Story-Telling and Immersion
            - >   Rich background for all new factions- who will treat you differently based on their culture, your reputation, and your choices.
            - >   Thematic music, portraits, logos, descriptions, ships and weaponry for each new faction.
            - >   Faction colonies have custom descriptions that give insight into their history and culture.
            - >   New and existing factions are recognizable at a glance - unique faction weapons and custom appearances with stat modifiers give identity to their fleets.
            - >   Engage in small-talk to learn valuable secrets and improve your reputation with others, even your officers. **In Development**
            - >   Exploration, and investigation of hidden secrets leading to powerful allies, lost technology, or even shaping the politics of the sector's major factions. **In Development**
            - >   Bioware-inspired notoriety system. Strike fear into those who've heard of your deeds or be known as the sector's best hope for survival. **In Development**

Tactics Manual

   -    I created this tactics manual to give players a reference point for the multiple changes to the combat layer present in the mod. It should not be required to play, most of the game's descriptions will give an accurate sense of things, but it exists regardless! The tutorial will also explain a lot of things, but until I can get the bugs out of the story encounters there it is disabled.

   -   As a side note, the role playing starts will eventually require the tutorial to be played first, but I will disable that requirement until it is up and running.


Screenshots and Gifs

   -   These should provide a decent showcase of some of the mod's features, but can contain some light spoilers, so viewer discretion is advised.


New Dialogue Options
Spoiler



[close]

Combat
Spoiler

Gifs








Screenshots










[close]

Factions
Spoiler













[close]

Ships
Spoiler









[close]

Weapons
Spoiler







[close]





Performance and System Requirements

   -    More combat calculations and just the extra content/scripts in the mod will inevitably impact performance.

   -    The most noticeable performance difference from unodded Starsector is a longer loading time at start, especially the first time you load the mod.

   -    I've tried to optimize where I can but there is a lot of content. I wanted the dialogue features to be immersive, and that requires a lot of scenarios and dialogue to get it to feel right.

   -    It's hard to measure- I can tell you my test PC has these specs and performs fairly well.

              OS:                     -     Windows 10 Home(64x)
              PROCESSOR:        -     3.40GHz Intel i5
              RAM:                   -     8G
              VIDEO:                -     NVIDIA GeForce GTX 1060 3GB



   -    Please feel free to chime in with what kind of performance you are experiencing, alongside your specs.

   -    I know it is definitely playable on older PC's and laptops from tests, but if I need to make adjustments I can try a few things.





Credits and Thanks


            - Alex
                   - Starsector's creator and my inspiration in game design. For the countless questions and coding help over several years and the emphasis you put towards supporting the modding community, taking player suggestions seriously, and just being a general all around nice guy, a serious heart-felt thank you!

            - xenoargh
                   - Creator of EZFaction and a very active and vocal member of the modding community, thank you for your input, creative suggestions, and all the questions you've answered!

            - LazyWizard, Trylobot, kazi, TJJ, Deathfly, Dark.Revenant, Tartiflette
                   - Probably the majority of the mods that currently exist use your tools and tutorials. A big thanks for your support of the community!
                                                                                   
            - Art and Sound Assets
                   - Though the ship edits, logos, title screen and weapons were done personally, factions of this mod would not be possible without the hard work, inspiration and generous free-use permissions granted by the artists who are responsible for the portraits and music.

            - ***Special Note*** As promised under applicable licenses, I will both credit and link to the websites of those artists! Thank you! I have also taken some of these assets from free art/sound websites that do not always specifically credit the author. I have worked hard to verify these sources- however, if for whatever reason you are the owner of an asset used in this mod and either you have not been credited or I do not have your permission to use said asset, please contact me and either I will ensure you are credited or I will remove the asset from the mod. I completely understand the desire for work to have the appropriate credit and I'm not here to profit or steal anyone's stuff. I am just trying to make a fun and unique mod experience the current game doesn't offer!  :D

               **Dev Note** I am not responsible for the content on the linked websites. They may contain mature material that I have no control over. Discretion is advised where necessary.

            - Illustrations
                   Andreas Rocha - http://www.andreasrocha.com/

            - Portraits
                   SineAlas - https://sinealas.deviantart.com/
                   virink.com - https://www.pinterest.com/source/virink.com/
                   Degenerate Portrait Pack - http://fractalsoftworks.com/forum/index.php?topic=12493.0
                   Thank you to the following portrait pack content creators:
                        - Rusty-Head: https://fractalsoftworks.com/forum/index.php?topic=16734.0
                        - atreg: https://fractalsoftworks.com/forum/index.php?topic=13716.0
                        - albarra: https://fractalsoftworks.com/forum/index.php?topic=16998.0
                        - Interestio: https://fractalsoftworks.com/forum/index.php?topic=17066.0


            - Music
                   Adrian von Ziegler (purchased with receipt available)- https://adrianvonziegler.bandcamp.com/
                   PurplePlanet - http://www.purple-planet.com/
                   Ross Budgen (SoundCloud) - https://soundcloud.com/rossbugden/epic-and-dramatic-trailer-music-olympus-copyright-and-royalty-free

            - Modding Community
                - To all the forum members who have given their advice, opinions, critiques and ideas - whether you even know it or not - you have been a big influence in shaping this mod to what it is now and inspiring me to continue working to bring this project to fruition. To say I stand on the shoulders of giants doesn't even do it justice. Again, a big thank you everyone!

20
Modding / Script Help: Advanced Scripting with Rules.csv
« on: August 24, 2017, 02:11:38 PM »
Ok, so this script is pretty big so no worries if noone feels like sifting through it, but the gist of it is that the conditions in rules.csv require it to pass or fail. Sometimes, randomly, it seems to return neither true nor false and causes the rules to fail to find a match in the conditions. Not the worst since just rehitting the dialogue option runs the script again where is passes or fails like 90% or more of the time. But weird and annoying lol.

Short end of the story: Where in the script would it "never" return true or false???

Proof of error:


Spoiler
673161 [Thread-4] INFO  com.fs.starfarer.campaign.rules.Rules  - Checking rule: CommodityRequestedBefore
673161 [Thread-4] INFO  com.fs.starfarer.campaign.rules.Rules  - Conditions: $option == Aid_request $entity.Requested_Aid score:1600 CommodityRequestCalc
673161 [Thread-4] INFO  com.fs.starfarer.campaign.rules.Rules  - Failed condition: CommodityRequestCalc
673161 [Thread-4] INFO  com.fs.starfarer.campaign.rules.Rules  - Checking rule: CommodityRequestedBeforeExalted
673161 [Thread-4] INFO  com.fs.starfarer.campaign.rules.Rules  - Conditions: $option == Aid_request $entity.Requested_Aid score:80 RepIsAtWorst $faction.id COOPERATIVE score:1500
673162 [Thread-4] INFO  com.fs.starfarer.campaign.rules.Rules  - Failed condition: RepIsAtWorst $faction.id COOPERATIVE score:1500
673162 [Thread-4] INFO  com.fs.starfarer.campaign.rules.Rules  - Checking rule: CommodityRequestedBeforeandAngry
673162 [Thread-4] INFO  com.fs.starfarer.campaign.rules.Rules  - Conditions: $option == Aid_request $entity.Requested_Aid score:1600 !CommodityRequestCalc
673162 [Thread-4] INFO  com.fs.starfarer.campaign.rules.Rules  - Failed condition: !CommodityRequestCalc

[close]


and the script...  :P

Spoiler

package archeus.rulecmd;

import java.util.List;
import java.util.Map;

import com.fs.starfarer.api.Global;
import com.fs.starfarer.api.characters.PersonAPI;
import com.fs.starfarer.api.characters.PersonalityAPI;
import com.fs.starfarer.api.characters.RelationshipAPI;
import com.fs.starfarer.api.campaign.InteractionDialogAPI;
import com.fs.starfarer.api.campaign.CampaignFleetAPI;
import com.fs.starfarer.api.campaign.rules.MemKeys;
import com.fs.starfarer.api.campaign.rules.MemoryAPI;
import com.fs.starfarer.api.campaign.FactionAPI;
import com.fs.starfarer.api.campaign.RepLevel;
import com.fs.starfarer.api.util.Misc.Token;
import com.fs.starfarer.api.impl.campaign.rulecmd.BaseCommandPlugin;
/**
 *   Commodity Request Calculation
 *    by Morrokain
 */
public class CommodityRequestCalc extends BaseCommandPlugin {
    @Override
   public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
      if (dialog == null) return false;

        int BaseFireChance = 40;          // base chance of success before other factors calculated in

        CampaignFleetAPI playerFleet;
        CampaignFleetAPI otherFleet;

        FactionAPI faction;
        FactionAPI playerFaction;

        playerFleet = Global.getSector().getPlayerFleet();
        otherFleet = (CampaignFleetAPI) (dialog.getInteractionTarget());
        faction = otherFleet.getFaction();
        playerFaction = playerFleet.getFaction();

        PersonAPI commander = otherFleet.getCommander(); // get commander of fleet

        RepLevel level = faction.getRelationshipLevel(playerFaction);
                                                         // get rep level relative to player

        if (level.isAtWorst(RepLevel.INHOSPITABLE));     // no chance once hostile of course.
        {
            int fireChance = BaseFireChance + (int) (Math.random() * 101);
                                                         // generates random number and adds to fireChance

            int fleetStrength = (int) otherFleet.getFleetPoints();
            int playerStrength = (int) Global.getSector().getPlayerFleet().getFleetPoints();
            double relativeStrength = 0;                 // gets relative size of fleet to player

            int repWeight = 1;                              // will impact the effect of fleet strength calc below


            if (level.isAtWorst(RepLevel.COOPERATIVE)) {    // rep impacts chance of success and weight of strength calc
                fireChance += 100;
                repWeight = 8;
            }

            if (level.isAtWorst(RepLevel.FRIENDLY)){
                fireChance += 30;
                repWeight = 6;
            }

            if (level.isAtWorst(RepLevel.WELCOMING)){
                fireChance += 30;
                repWeight = 4;
            }

            if (level.isAtWorst(RepLevel.FAVORABLE)){
                fireChance += 15;
                repWeight = 3;
            }

            if (level.isAtBest(RepLevel.NEUTRAL)){
                fireChance += 5;
                repWeight = 2;
            }

            if (level.isAtBest(RepLevel.SUSPICIOUS))
                fireChance -= 20;

            if (level.isAtBest(RepLevel.INHOSPITABLE))
                fireChance -= 40;

            if (faction.getId().equals("scicorps")) {       // faction also has an effect
                fireChance += 30;                      // different factions have different base percentages
                repWeight += 2;                        // to aid player
            }

            if (faction.getId().equals("hegemony"))  {      // fleet strength has a slightly lower impact on success rate
                fireChance += 15;                      // for some factions like hegemony and independent due to good nature
                repWeight += 1;
            }

            if (faction.getId().equals("independent")) {
                fireChance += 5;
                repWeight += 1;
            }

            if (faction.getId().equals("luddic_church")) {   // similar to hegemony in generosity.
                fireChance += 15;
                repWeight += 1;
            }

            if (faction.getId().equals("luddic_path"))
            {
                float credits = Global.getSector().getPlayerFleet().getCargo().getCredits().get();
                float aidCost = (int) Global.getSector().getPlayerFleet().getFleetPoints() * 500;

                memoryMap.get(MemKeys.LOCAL).set("$AidRequest_estCost", aidCost, 1);

                boolean canAfford;

                if (credits >= aidCost)
                {
                    canAfford = true;
                    fireChance += 10;                   // if player can afford the estimated costs of resupply,
                }                                       // much higher chance of success for greedier factions
                else
                {
                    canAfford = false;
                    fireChance -= 25;
                }
                memoryMap.get(MemKeys.LOCAL).set("$CanAfford_estCost", canAfford, 1);
            }


            if (faction.getId().equals("archean_order"))
            {
                float credits = Global.getSector().getPlayerFleet().getCargo().getCredits().get();
                float aidCost = (int) Global.getSector().getPlayerFleet().getFleetPoints() * 500;

                memoryMap.get(MemKeys.LOCAL).set("$AidRequest_estCost", aidCost, 1);

                boolean canAfford;

                if (credits >= aidCost)
                {
                    canAfford = true;
                    fireChance += 20;                   // if player can afford the estimated costs of resupply,
                }                                       // much higher chance of success for greedier factions
                else
                {
                    canAfford = false;
                    fireChance -= 15;
                }
                memoryMap.get(MemKeys.LOCAL).set("$CanAfford_estCost", canAfford, 1);
            }


            if (faction.getId().equals("adamantine_consortium")) // in general consortium doesn't give much aid
            {
                float credits = Global.getSector().getPlayerFleet().getCargo().getCredits().get();
                float aidCost = (int) Global.getSector().getPlayerFleet().getFleetPoints() * 500;

                memoryMap.get(MemKeys.LOCAL).set("$AidRequest_estCost", aidCost, 1);

                boolean canAfford;

                if (credits >= aidCost)
                {
                    canAfford = true;
                    fireChance -= 5;                   // if player can afford the estimated costs of resupply,
                }                                       // much higher chance of success for greedier factions
                else
                {
                    canAfford = false;
                    fireChance -= 35;
                }
                memoryMap.get(MemKeys.LOCAL).set("$CanAfford_estCost", canAfford, 1);
            }

            if (faction.getId().equals("trader_guilds"))
            {
                float credits = Global.getSector().getPlayerFleet().getCargo().getCredits().get();
                float aidCost = (int) Global.getSector().getPlayerFleet().getFleetPoints() * 400;

                memoryMap.get(MemKeys.LOCAL).set("$AidRequest_estCost", aidCost, 1);

                boolean canAfford;

                if (credits >= aidCost)
                {
                    canAfford = true;
                    fireChance += 10;
                }
                else
                {
                    canAfford = false;
                    fireChance -= 15;
                }
                memoryMap.get(MemKeys.LOCAL).set("$CanAfford_estCost", canAfford, 1);
            }

            if (faction.getId().equals("pirates"))
            {
                float credits = Global.getSector().getPlayerFleet().getCargo().getCredits().get();
                float aidCost = (int) Global.getSector().getPlayerFleet().getFleetPoints() * 500;

                memoryMap.get(MemKeys.LOCAL).set("$AidRequest_estCost", aidCost, 1);

                boolean canAfford;

                if (credits >= aidCost)
                {
                    canAfford = true;
                    fireChance += 10;                   // if player can afford the estimated costs of resupply,
                }                                       // much higher chance of success for greedier factions
                else
                {
                    canAfford = false;
                    fireChance -= 25;
                }
                memoryMap.get(MemKeys.LOCAL).set("$CanAfford_estCost", canAfford, 1);
            }

            PersonalityAPI personality = commander.getPersonalityAPI();

            if (personality.toString().equals("reckless")) {
                fireChance -= 15;
                repWeight -= 2;
            }

            if (personality.toString().equals("aggressive")) {
                fireChance -= 10;
                repWeight -= 1;
            }

            if (personality.toString().equals("cautious")) {
                fireChance -= 10;
                repWeight += 1;
            }


            if (personality.toString().equals("timid")) {
                fireChance += 20;
                repWeight += 2;
            }

            RelationshipAPI relationship = commander.getRelToPlayer();
            // finally, commander's personality and opinion of player matters

            if (relationship.isAtWorst(RepLevel.FRIENDLY)) {
                fireChance += 45;
                repWeight += 2;
            }

            if (relationship.isAtWorst(RepLevel.WELCOMING)) {
                fireChance += 25;
                repWeight += 1;
            }

            if (relationship.isAtWorst(RepLevel.FAVORABLE)) {
                fireChance += 15;
                repWeight += 1;
            }

            if (relationship.isAtBest(RepLevel.SUSPICIOUS))
                fireChance -= (int) (fireChance * 0.2);

            if (relationship.isAtBest(RepLevel.INHOSPITABLE))
                fireChance -= (int) (fireChance * 0.5);

            if (relationship.isAtBest(RepLevel.HOSTILE))
            {
                if (!level.isAtWorst(RepLevel.COOPERATIVE))
                {
                    fireChance = 0;                         // unless highest rep, will fail if commander is hostile
                }                                           // even then, reduces by 50% like inhospitable rep
            }

            if (repWeight <= 0)                             // safeguard for strength calc
                repWeight = 1;

            //** Note on Fleet Strength calculations: with neutral or lower rep, fleet strength is one of the primary
            // factors and those players without at least close to equal strength will be hard pressed to find any aid from
            // most factions. **


            if (fleetStrength > playerStrength) {       // less likely as other fleet gets stronger
                relativeStrength = (((playerStrength * 100) / fleetStrength)) * 0.01; // but higher rep reduces impact
                fireChance -= (int) ((fireChance - (fireChance * relativeStrength)) / repWeight); // of this calculation
            }

            if (fleetStrength <= playerStrength) {      // more likely as the other fleet gets weaker
                relativeStrength = (((fleetStrength * 100) / playerStrength)) * 0.01;
                fireChance += (int) ((fireChance * (1 - relativeStrength)));
            }                                         // modifies final chance to fire by percentage of strength difference

            memoryMap.get(MemKeys.LOCAL).set("$AidRequest_fireChance", fireChance, 1);
            memoryMap.get(MemKeys.LOCAL).set("$FleetStrength_repWeight", repWeight, 1);

            if (fireChance >= 100)
                return true;                    // request granted if fireChance over 100 (successful roll)
        }
      return false;
   }
}
[close]

And some screens of the script (and some others) for funsies  ;D

Spoiler


















[close]


21
Modding / Not recognizing compiled script: IntelliJ (solved)
« on: August 03, 2017, 10:09:49 PM »
Alright, so wrote a script to return true or false based upon the player's replevel with the interaction target and a randomly generated 'fireChance'

The idea here is that the event more or less often based on the players rep level.

Anywhoo, compiling my first script with IntelliJ and everything seems to check out and compile without any errors but I get an error message about rules saying it can't find the custom script when I try and actually run the game.

Code:
Spoiler
package archeus.rulecmd;

import java.util.List;
import java.util.Map;

import com.fs.starfarer.api.Global;
import com.fs.starfarer.api.campaign.InteractionDialogAPI;
import com.fs.starfarer.api.campaign.CampaignFleetAPI;
import com.fs.starfarer.api.campaign.rules.MemKeys;
import com.fs.starfarer.api.campaign.rules.MemoryAPI;
import com.fs.starfarer.api.campaign.FactionAPI;
import com.fs.starfarer.api.campaign.RepLevel;
import com.fs.starfarer.api.util.Misc.Token;
import com.fs.starfarer.api.impl.campaign.rulecmd.BaseCommandPlugin;
/**
 *   Consortium Tribute Calculation
 *    by Morrokain
 */
public class ConsortiumTributeCalc extends BaseCommandPlugin {
    @Override
   public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
      if (dialog == null) return false;
      
      float credits = Global.getSector().getPlayerFleet().getCargo().getCredits().get();
      float tribute = (int) Global.getSector().getPlayerFleet().getFleetPoints() * 200;
      
      memoryMap.get(MemKeys.LOCAL).set("$Consortium_tribute", (int)tribute, 0);

        int BaseFireChance = 50;          // base chance of success before rep cal


        CampaignFleetAPI playerFleet;
        CampaignFleetAPI otherFleet;

        FactionAPI faction;
        FactionAPI playerFaction;

        playerFleet = Global.getSector().getPlayerFleet();
        otherFleet = (CampaignFleetAPI) (dialog.getInteractionTarget());
        faction = otherFleet.getFaction();
        playerFaction = playerFleet.getFaction();

        RepLevel level = faction.getRelationshipLevel(playerFaction);
                                                    // get rep level relative to player

        if (level.isAtWorst(RepLevel.INHOSPITABLE)); // no chance once hostile.
        {
            int fireChance = BaseFireChance + (int) (Math.random() * 101);
                                                        // generates random number and adds to fireChance
            if (level.isAtWorst(RepLevel.COOPERATIVE))   // rep adds or subtracts fireChance
                fireChance -= 100;

            if (level.isAtWorst(RepLevel.WELCOMING))
                fireChance -= 20;

            if (level.isAtWorst(RepLevel.FAVORABLE))
                fireChance -= 15;

            if (level.isAtWorst(RepLevel.FRIENDLY))
                fireChance -= 10;

            if (level.isAtWorst(RepLevel.NEUTRAL))
                fireChance += 5;

            if (level.isAtWorst(RepLevel.SUSPICIOUS))
                fireChance += 20;

            if (level.isAtWorst(RepLevel.INHOSPITABLE))
                fireChance += 30;

            memoryMap.get(MemKeys.LOCAL).set("$Tribute_fireChance", fireChance, 0);

            if (fireChance >= 100 && credits >= tribute)  // only fire if enough player credits for tribute request
                return true;                              // and if fireChance over 100 (successful roll)
            }

      return false;
   }

}

[close]

settings entry:

Spoiler
   "ruleCommandPackages":[
          "archeus.rulecmd"
   ],
[close]

Error Message:
Spoiler
5450 [Thread-4] INFO  com.fs.starfarer.campaign.rules.Rules  - Loading rule: greetingArcheanTOffNormal
5450 [Thread-4] INFO  com.fs.starfarer.campaign.rules.Rules  - Loading rule: greetingArcheanTOffWeaker
5450 [Thread-4] INFO  com.fs.starfarer.campaign.rules.Rules  - Loading rule: greetingArcheanFriendly
5450 [Thread-4] INFO  com.fs.starfarer.campaign.rules.Rules  - Loading rule: greetingArcheanHostileWeaker
5450 [Thread-4] INFO  com.fs.starfarer.campaign.rules.Rules  - Loading rule: greetingArcheanHostileWeakerDefiant
5450 [Thread-4] INFO  com.fs.starfarer.campaign.rules.Rules  - Loading rule: greetingArcheanHostileStronger
5450 [Thread-4] INFO  com.fs.starfarer.campaign.rules.Rules  - Loading rule: greetingArcheanNeutral
5451 [Thread-4] INFO  com.fs.starfarer.campaign.rules.Rules  - Loading rule: greetingAdamantineFriendly
5451 [Thread-4] INFO  com.fs.starfarer.campaign.rules.Rules  - Loading rule: greetingAdamantineHostileWeaker
5451 [Thread-4] INFO  com.fs.starfarer.campaign.rules.Rules  - Loading rule: greetingAdamantineHostileWeakerDefiant
5451 [Thread-4] INFO  com.fs.starfarer.campaign.rules.Rules  - Loading rule: greetingAdamantineHostileStronger
5451 [Thread-4] INFO  com.fs.starfarer.campaign.rules.Rules  - Loading rule: greetingAdamantineNeutral
5451 [Thread-4] INFO  com.fs.starfarer.campaign.rules.Rules  - Loading rule: ConsortiumTributeCheck
5451 [Thread-4] INFO  com.fs.starfarer.loading.scripts.OoOO  - Loading class: com.fs.starfarer.api.impl.campaign.rulecmd.ConsortiumTributeCalc
5451 [Thread-4] INFO  com.fs.starfarer.loading.scripts.OoOO  - Loading class: com.fs.starfarer.api.impl.campaign.rulecmd.salvage.ConsortiumTributeCalc
5451 [Thread-4] INFO  com.fs.starfarer.loading.scripts.OoOO  - Loading class: com.fs.starfarer.api.impl.campaign.rulecmd.newgame.ConsortiumTributeCalc
5451 [Thread-4] INFO  com.fs.starfarer.loading.scripts.OoOO  - Loading class: archeus.rulecmd.ConsortiumTributeCalc
5725 [Thread-4] ERROR com.fs.starfarer.combat.CombatMain  - com.fs.starfarer.api.util.RuleException: java.lang.RuntimeException: Command [ConsortiumTributeCalc] not found in packages:
com.fs.starfarer.api.impl.campaign.rulecmd
com.fs.starfarer.api.impl.campaign.rulecmd.salvage
com.fs.starfarer.api.impl.campaign.rulecmd.newgame
archeus.rulecmd

com.fs.starfarer.api.util.RuleException: java.lang.RuntimeException: Command [ConsortiumTributeCalc] not found in packages:
com.fs.starfarer.api.impl.campaign.rulecmd
com.fs.starfarer.api.impl.campaign.rulecmd.salvage
com.fs.starfarer.api.impl.campaign.rulecmd.newgame
archeus.rulecmd

   at com.fs.starfarer.campaign.rules.A.<init>(Unknown Source)
   at com.fs.starfarer.campaign.rules.Rules.o00000(Unknown Source)
   at com.fs.starfarer.loading.SpecStore.OO0000(Unknown Source)
   at com.fs.starfarer.loading.ResourceLoaderState.init(Unknown Source)
   at com.fs.state.AppDriver.begin(Unknown Source)
   at com.fs.starfarer.combat.CombatMain.main(Unknown Source)
   at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.RuntimeException: Command [ConsortiumTributeCalc] not found in packages:
com.fs.starfarer.api.impl.campaign.rulecmd
com.fs.starfarer.api.impl.campaign.rulecmd.salvage
com.fs.starfarer.api.impl.campaign.rulecmd.newgame
archeus.rulecmd

   at com.fs.starfarer.campaign.rules.A.getCommandClass(Unknown Source)
   ... 8 more

Process finished with exit code 1
[close]

Anyone dealt with this?

I'm fairly confident I set up the artifact correctly in the compiler, and in the 'compiled output' folder after the project builds the script shows up as a class file, so its recognized there.

Not really sure where to go from here.  ???


Edit: Solved. The dumb thing (intelliJ) renamed the jar to the project name for some reason so I just needed to update the entry in the mod_info file with the correct jar name since I can't get it to call the jar anything else for some reason.  >:(

22
Getting this error when trying to run the build:

Code
cmd.exe /c "C:/Program Files (x86)/Fractal Softworks/Starsector/starsector-core/starsector.bat"

C:\Program Files (x86)\Fractal Softworks\Starsector>..\jre\bin\java.exe -Djava.library.path=native\windows -Xms1536m -Xmx1536m -Xss1024k -Dcom.fs.starfarer.settings.paths.logs=. -Dcom.fs.starfarer.settings.paths.saves=../saves -Dcom.fs.starfarer.settings.paths.screenshots=../screenshots -Dcom.fs.starfarer.settings.paths.mods=../mods -classpath janino.jar;commons-compiler.jar;commons-compiler-jdk.jar;starfarer.res.jar;starfarer.api.jar;starfarer_obf.jar;jogg-0.0.7.jar;jorbis-0.0.15.jar;json.jar;lwjgl.jar;lwjgl_util_applet.jar;jinput.jar;lwjgl_test.jar;log4j-1.2.9.jar;lwjgl_util.jar;fs.sound_obf.jar;fs.common_obf.jar;xstream-1.4.2.jar com.fs.starfarer.StarfarerLauncher
The system cannot find the path specified.

Process finished with exit code 1

The file path is obviously intact when I look at it.

My best guess is it might be the Java 1.7 JDK I used as a dependency. I used (x64) out of habit when I think my new system needs (x86) (looking at the file path being called  ::) )

Currently going to see if that works, but any other ideas?

23
Modding / To: Those Experienced with Mod Releases
« on: June 01, 2017, 04:58:06 PM »
Early tests indicate the update fixed the problems!  ;D ;D ;D THANK YOU ALEX!! Been a long time in progress but:



Finally in the last testing phases of my tactical combat/fighter re-balance mod and looking to get some gameplay and content videos, gifs and other such stuff prepared to showcase its features! Release is looking like ~two weeks or so depending upon a couple last items I want to squeeze in.

I'm looking for recommendations on how to capture gameplay video and make gifs, etc as well as sites to store the content for displaying it in the forum topic post. Just need to know where to start looking.

Anybody have some time to give me a little direction? Kind of new to it.  :P 

24
General Discussion / Ko Combine: Info Wanted!
« on: January 26, 2017, 11:16:51 PM »
So, Imma just leave this here but... in the interim before the highly anticipated update is ready I'd really love to get some dirt on these guys since they finally make an appearance! We already kind of know what the Persean League is about. But this faction only has a couple vague references in weapon descriptions and are otherwise a total mystery lore-wise. Blog post if time maybe please?

Who are they? What is their place in the general political sphere of the sector? Are they more of a sub-faction under the dominion of one of the other powers or have they carved out their own slice of influence?

Do they have any ship / tech preferences or unique combat tactics?

 ;D

25
Suggestions / Hullmod: Adjust Fighter Installation Cost
« on: January 14, 2017, 02:24:28 PM »
Can we get support for hullmods that lower the OP cost for specific fighter wings for a ship its installed on?

I would want to use this to partially limit or at least encourage hi-tech fighters and bombers only on hi-tech ships.

Just didn't see this in the patch notes and so figured I'd suggest it if it wasn't supported already  :)

26
Suggestions / Design Discussion: Player value vs credit value
« on: November 18, 2016, 03:25:17 PM »
Been meaning to suggest this for a bit, but now that everything is coming together and the world is expanding next update I wanted to get my thoughts out on campaign progression.

Right now, I feel the primary discussion of the campaign element of the game is that many players either feel the early game is difficult, or the late game mechanics and skills favor player controlled super ships or the highly trained officers and their related skills. To those who point out that losing ships (I'll update with post links later btw, feeling lazy atm ;P) hurts the bottom line too much and to have meaningful progression losses have to be minimized, I am not suggesting otherwise, as I would agree.

But, at the other end, the game can't be too easy if loses don't mean anything or supplies become trivial because everything is super cheap and accessible. So to rebalance around early game doesn't make sense either. In the blog post on procedural generation, Alex touched on early game progression and noted that though pirate skins and built-in debuff hullmods were meant to make the early combat encounters easier, automated defense encounters would be another level down too, and other exploration content would make early game easier. I think this is a good step, but I also think something else is needed before any of the above issues truly get solved.

What I am talking about is what a player finds of value in winning an encounter vs what they lose. Right now, the biggest medium of transaction in the game is credits. Credits buy supplies, fuel, weapons and ships. It is by far the most valuable "fun gaining" resource in the game. Think of reputation, for example. All that does at best is unlock new things that also cost credits. So credits are still in play there. Nothing gained in battle outweighs the value of pure credits, because they are more flexible than just a weapon, supplies or even the costly boarding of a new ship, unless that ship or weapon cannot be bought at a market for credits anywhere else.

Losses in battle in turn cost credits as well, both in terms of CR replenishment and supplies, and the loss of ships and weapons as a whole. Because deployment cannot be without cost (because it makes things too easy), it was balanced around careful supply considerations to make it undesirable to deploy overwhelming advantages. But! This also means that losses therefore always become a redline area that makes success of the mission no longer worth the investment cost per cost.

That is because the only thing of true value gained from combat right now is additional credits. Reputation, as stated earlier, is inferior as a reward because it is also linked to having credits. And since multiple areas of the campaign and combat are finely tuned around a "mistake = lost credits" scenario, it is no surprise that only the most conservative of playstyles are successful, and then quickly become boring because they have crossed the threshold of the difficulty barrier.

So, the only real way to solve these issues is to implement 2 things across multiple areas of the game:

1) More than one (preferable a couple) accessible, reliable, repeatable and sustainable ways to make credits outside of a combat encounter.

and more importantly:

2) The has to be another (again preferably many) currency that equals or is greater than credits in terms of potential content progression.


So maybe stations can act as one, the addition of the new resources I could see as being something you would want to throw ships away over. But that's really the idea here. Imo, the game will be at its most fun when an actual decision most players make will be something along the lines of "lets tell these 2 Lashers to escort this Hyperion, because the Lashers are expendable and the Hyperion isn't." I would even go so far to say as around 65% of your fleet at any given time should be mostly expendable and fairly easily replaced. The only things you should never want to lose is exceptionally rare or, your personal favorite, ships and weapons.

The big difference in this scenario, is that their loss would be as "payment" for something else that progresses the players goals, whatever that may be. It can be a buff to reputation's relevance as a resource, new research or tech potential, or even story. There are multiple paths to go I think.

Right now, all ships are equally important, because any losses equal lost progression because the only way to progress is more credits.

There hasn't been any details released (thankfully) on the exploration content, but it should hopefully give these new progression paths an equal relevance to just getting as rich as possible, because right now too many things are a necessary drain on credits for that to work well otherwise.

I also think these progression paths should be content rewarding rather than punitive. Since most mechanics introduced right now discourage things (hyperstorms, CR, supplies, fuel, reputation tech barriers) by costing credits, there has to be a balancing end that rewards the player for losing expendable ships by increasing their access to new fun things. Reputation was a start, but it effectiveness was limited since like I said the stuff unlocked from rep still costs credits, so still equates ship losses as "unacceptable" in a player's mind.

Anyone else care to respond or give their ideas on this? I just figured now is the time since this is the kind of stuff currently under development. :)

27
Suggestions / Unlockable Codex Entries (exploration)
« on: September 23, 2016, 12:46:13 PM »
I actually have suggested this before a long time ago, but it is a lot more relevant with the procedural generation and exploration features taking shape so I will post it again.

If not already, the codex entries should have a *hidden* flag that only unflags when you find an item during the campaign.

This way, all weapons and ships, variants and skins are not just known by browsing the easily accessible codex and inadvertently finding spoilers - unless you have already encountered that ship/weapon before.

This not only makes the game a lot more fun since I am excited to find new things and new kinds of weapons I don't even know exist yet through exploration (and later technological re-discoveries that unlock new tech blueprints for the industry feature), but its also important for the potential addition of procedurally generated weapons, ships or even whole factions that are "in the codex" but not found every play through. New players could get pretty frustrated if they didn't know that beforehand.

28
Could be on my end or something unrelated, but my mod seems to ignore the lionsguard.faction file and its ship doctrine, variant definitions and weights when spawning fleets.

Mod runs fine and the faction is there, it just spawns the same ships it would in Vanilla. All other files work normally and at least seem to generally follow the weights and variant definitions.


Did I miss a script or something that makes this set?

29
Suggestions / Discussion: The case for fighters as weapons.
« on: June 25, 2016, 01:48:14 PM »
I wanted to get a conversation going about this since I believe I saw somewhere that a rework of fighters is possibly on the near future to do list and there have been ~4 "fix fighters" posts in the last 5 pages of suggestions.

A long time ago fighters in Starsector were weapon types that kind of shot out fighters like bullets. They then went through a model where they were a ship type that could "land" on a carrier and repair and rearm themselves but were completely lost when the whole squad was destroyed. Now we are at the current model of reinforcing fighters at the cost of supplies and reverting back to the old model only if carriers are not present within a fleet.

I think that with the addition of all the new features and especially with the addition of rng and procedural spawning on the campaign level, a case can be made for having fighters as weapon types again.

A couple pros to this model:

     1) It is easy to do with a pre-existing model already in the past development cycles. Combine it with the reinforcement (at the cost of supplies) mechanic currently present for a completely unique weapon type that is far more manageable, moddable and balanced than the current fighter system.

     2) Lessens the headache and impact of rng and random spawning by ensuring all carriers have the appropriate amount of fighters to field.

     3) Similar to the last point, fighters are fielded based upon their carrier's own flight deck capabilities and not just their weight class. (fighters tied to carrier itself, the spawn weights are inadequate to provide an accurate carrier distribution in most cases and in my mind completely kills any find of faction specialization)

     4) Can restrict certain fighter types from certain hulls (low tech condor cannot support wasps for example) to better diversify ship flavor while providing a balancing tool for some of the worst offenders (looking at you, trident).

     5) Fighters finally spawn from designated carrier (a wish-list item that has been circling around in the community for a while).

     6) Fighter only fleets are impossible (ends up being more annoying than anything else since they are useless without a carrier and prevents new fleets from spawning if not caught).



Cons:

     1) Fighters without carriers becomes an issue. Would require either the rejection of that idea or a way to keep that in the game somehow. my 2 cents: I'm ok with getting rid of it if it fixes the above issues but it is not the ideal solution. One idea to fix this would be to give some ships that it would make sense on (hound, kite, taursus, etc) that weapon type but obviously a civilian hull mod that great weakens it. Maybe far less replacement chassis and obviously some harsh tech restrictions (no bombers or support fighters and no hi tech fighters and interceptors).

     2) AI needs to be able to handle this. I'm not sure how much would be required here but I am of the mindset that an AI fine tuning of carrier and fighter tactics is necessary regardless and so consider this a "light" con.


Anyway what are the communities thoughts on this?

30
So this is meant to be pretty straightforward. Since a cursory glance hasn't revealed any posts on this topic, I would like to get the info out there on how to spawn your own custom fleets with help from the modding community and Alex, if possible.

IMPORTANT STUFF
From here on out, I am posting what I think this code does based upon my own personal play testing. I am making this post in the hopes that other members of the modding and development community can contribute to the accuracy of this post for the betterment of the community as a whole.

WHERE:
Specifically I want to focus on fleet distribution using the faction files located in starsector/starsector-core/data/world/factions directory to spawn custom fleets in place of the core game fleets.


OPENING THE FILE:

Open one of these files in a text editor. I use notepad but notepad++ I have heard is better at color coding syntax and a variety of other convenience things.

A First Look at Spawn Probability:

Open a factions file (I am using the Hegemony file as the example in this post) and scroll down to the the portion marked "doctrine". It is located near the bottom of the file and should appear similar to this:

Code
	"doctrine":{
# ship distribution
"interceptors":4,
"fighters":6,
"bombers":2,
"small":8,
"fast":4,
"medium":12,
"large":6,
"capital":3,

# as fraction of combat ships of same size
"escortSmallFraction":1,
"escortMediumFraction":1,

"combatFreighterProbability":0.1,

"minPointsForCombatCapital":10,
"minPointsForLargeCarrier":30,

"smallCarrierProbability":0.25,
"mediumCarrierProbability":0.25,
"largeCarrierProbability":0.25,

The first section of the code is ship distribution. This section determines what type and how many of each ship type will spawn when a new fleet is generated.

The portion in quotes (i.e: "small":8,) is an ID for a ship type that is further defined by one or several ship variant file IDs earlier in the Factions file. Do not worry about that for now, we will get to that later on in this post. Just understand that each ID represents a grouping of ship variants you can define yourself.

The second part of code after the ":", the number (i.e: "small":8,), is the probability weight given to this grouping. This means that when each fleet is generated in the game the higher the number given to the "small" ship type the more likely "small" type ships will be spawned.

IMPORTANT NOTE ON PROBABILITY WEIGHTS:

It is important to note that probability weight is different from a set scale weight or ratio. Weights of 2 and 4  for the ship types frigate and fighter respectively will not equal 2 frigates and 4 fighters every time (or even most of the time in my experience  ::) ). It is still very likely fleets will spawn all frigates or 5 frigates and a single fighter with such low weight variance.

It is also important to note here that a "higher" number only means one higher relative to the other ship grouping weights defined under the ship distribution section. So for example say "small" is given a weight of 8, "fighter" is given a weight of 16 and "capital" is given a weight of 4. In this case "fighter" type ships will spawn roughly 2 times more often than "small" type ships and roughly 4 times more often than "capital" type ships. However, the same cannot be said if the weights were 8 for "small", 16 for "fighter", and 2 for "capital". Then, though "fighter" type ships would still spawn roughly 2 times more often than "small" type ships, they would now spawn roughly 8 times more often than "capital" type ships. Simply making the number higher will not spawn more ships by itself unless the other ships all remain the same.

So if you want more "set" fleets, using higher weight variance helps, but of course cannot outright eliminate, situations where fleets are composed of more or less of one ship type than intended.

MOVING ON TO MULTI LEVEL PROBABILITY IN STARSECTOR:

In Starsector, there are a couple different probability levels for each type of fleet spawned. Freighter fleets, for example, have the freighters themselves in small, medium and large types, but also have a percentage chance to spawn combat freighters of the same size instead of freighters for each ship spawned. Along the same lines, any combat ship has a ratio to express the number of "escort" type ships of each size that will be spawned instead of the normal combat vessels defined earlier in the file. These two layers of probability are determined in the next section of code after fleet distribution :

Code
		# as fraction of combat ships of same size
"escortSmallFraction":1,
"escortMediumFraction":1,

"combatFreighterProbability":0.1,

So in this example for every 2 "small" and "medium" ship type spawned, one will be an escort with a 1:1 ratio. This is a "hard" ratio I believe (one of the few in the game) so not exactly a probability but nonetheless another layer to manage in fleet distribution.

Similarly, in this example combat freighters will spawn roughly 1 out of every 10 times a freighter spawns (10% chance = 0.1). This is not a "hard" ratio but probability like the rest of the weights we have been dealing with so far.

CARRIERS, AN EXCEPTION TO THE RULE:

Carrier probability works slightly differently. The next section of code looks like this:

Code
		"minPointsForCombatCapital":10,
"minPointsForLargeCarrier":30,

"smallCarrierProbability":0.25,
"mediumCarrierProbability":0.25,
"largeCarrierProbability":0.25,

** this section needs to be worked on**

The first two lines are unclear to me. I am not sure what "points" are being referred to here, but the idea is the higher the number the less access to larger ships. It does not seem to be fleet points because in my current W.I.P mod capitals never spawn for some reason even with it set to 10 and many fleets have far more than 10 fleet points in their composition.

** this section needs to be worked on**

The last 3 lines, however, set the probability a carrier will spawn once in a fleet. As far as I can tell, a probability of 1.0 (100%) means that a single carrier of the designated size will be included in combat fleets and patrols. They do not seem to have any effect on freighter convoys. If multiple sizes are set to 1.0 then both carriers will be included in the fleet if it is large enough. (patrol or higher)

Also, any fleet that includes a carrier will have a couple more fighter, interceptor or bomber wings added seemingly at random regardless of the weights set earlier under ship distribution.


VARIANT IDs, VARIANT WEIGHTS AND SHIP TYPE GROUPINGS:


Now that we understand how the different layers of probability operate outside of the ship type groupings, lets take a look at how each of these layers works together alongside individual grouping weights to add yet another layer of probability to ship composition.

Each ship type grouping has a number of variant IDs assigned to it earlier in the factions file. Scroll up to find the code Ship Roles:

Code
	"shipRoles":{
"interceptor":{
"talon_wing":10,
"thunder_wing":10,
"fallback":{"fighter":1},
},
"fighter":{
"broadsword_wing":10,
"gladius_wing":10,
"warthog_wing":10,
"fallback":{"interceptor":1},
},
"bomber":{
"piranha_wing":10,
},

"fastAttack":{
"lasher_Standard":5,
"lasher_Strike":5,
"hound_hegemony_Standard":10,
"wolf_hegemony_Assault":2,
"fallback":{"combatSmall":1},
},

"escortSmall":{
"lasher_CS":10,
"lasher_PD":10,
"monitor_Escort":2,
"wolf_hegemony_PD":10,
"vigilance_FS":10,
"kite_Interceptor":5,
"fallback":{"combatSmall":1},
},
"escortMedium":{
"enforcer_Escort":10,
"enforcer_Balanced":10,
"enforcer_Outdated":10,
"enforcer_CS":10,
"hammerhead_Balanced":10,
"enforcer_Elite":10,
"enforcer_XIV_Elite":4,
"hammerhead_Elite":10,
"fallback":{"combatMedium":1},
},

"combatSmall":{
"wolf_hegemony_CS":10,
"lasher_Standard":5,
"lasher_Strike":5,
"lasher_CS":5,
"lasher_Assault":5,
"vigilance_Standard":10,
"vigilance_FS":10,
"vigilance_Strike":10,
"brawler_Assault":10,
"centurion_Assault":10,
"fallback":{"escortSmall":1},
},
"combatMedium":{
"enforcer_Assault":10,
"enforcer_Balanced":10,
"enforcer_Outdated":10,
"enforcer_CS":10,
"enforcer_XIV_Elite":8,
"hammerhead_Balanced":10,
"sunder_CS":10,
"hammerhead_Elite":10,
"enforcer_Elite":10,
"sunder_Assault":10,
"fallback":{"combatSmall":2},
},
"combatLarge":{
"falcon_Attack":10,
"falcon_CS":10,
"falcon_xiv_Elite":3,
"falcon_xiv_Escort":4,
"eagle_Assault":10,
"eagle_Balanced":10,
"eagle_xiv_Elite":5,
"dominator_Support":6,
"dominator_Assault":6,
"dominator_AntiCV":6,
"dominator_Outdated":6,
"dominator_XIV_Elite":5,
"gryphon_Standard":10,
"gryphon_FS":5,
"fallback":{"combatMedium":2},
},
"combatCapital":{
"onslaught_Standard":10,
"onslaught_Outdated":10,
"onslaught_Elite":10,
"onslaught_xiv_Elite":3,
"fallback":{"combatLarge":2},
},


# hybrid ships with good combat and cargo capacity
"combatFreighterSmall":{
"hound_hegemony_Standard":10,
"shepherd_Frontier":10,
"cerberus_Standard":4,
"cerberus_Hardened":4,
"cerberus_Shielded":4,
"wayfarer_Standard":10,
"fallback":{"freighterSmall":1},
},
"combatFreighterMedium":{
"mule_d_Standard":10,
"mule_Standard":10,
"fallback":{"combatFreighterSmall":2},
},
"combatFreighterLarge":{
"venture_Balanced":10,
"fallback":{"combatFreighterMedium":2},
},

"civilianRandom":{
"mercury_d_Standard":10,
"hermes_d_Standard":10,
"mercury_Standard":8,
"mercury_FS":3,
"hermes_Standard":10,
"starliner_Standard":10,
"nebula_Standard":10,
"mudskipper_Standard":10,
"kite_Interceptor":5,
"kite_Standard":5,
"fallback":{"freighterSmall":1},
},

# carriers
"carrierSmall":{
"condor_FS":5,
"condor_Support":5,
"gemini_Standard":10,
"fallback":{"carrierMedium":0.5},
},
"carrierMedium":{
"heron_Standard":10,
"fallback":{"carrierSmall":2},
},
"carrierLarge":{
"fallback":{"carrierMedium":2},
},

# freighters and such
"freighterSmall":{
"hermes_d_Standard":10,
"hermes_Standard":10,
"fallback":{"freighterMedium":0.5},
},
"freighterMedium":{
"tarsus_d_Standard":5,
"buffalo_d_Standard":5,
"buffalo_Standard":10,
"tarsus_Standard":10,
"buffalo_hegemony_Standard":10,
"fallback":{"freighterSmall":2},
},
"freighterLarge":{
"atlas_Standard":10,
"fallback":{"freighterMedium":2},
},

"tankerSmall":{
"dram_Light":10,
"fallback":{"tankerMedium":0.5},
},
"tankerMedium":{
"phaeton_Standard":10,
"fallback":{"tankerSmall":2},
},
"tankerLarge":{
"prometheus_Super":10,
"fallback":{"tankerMedium":2},
},

"personnelSmall":{
"mercury_d_Standard":10,
"mercury_Standard":10,
"mudskipper_Standard":2,
"kite_Interceptor":5,
"fallback":{"personnelMedium":0.5},
},
"personnelMedium":{
"valkyrie_Elite":10,
"nebula_Standard":1,
"fallback":{"personnelSmall":2},
},
"personnelLarge":{
"fallback":{"personnelMedium":3},
},

# utility ships
"tug":{
"ox_Standard":10,
"fallback":{"utility":1},
},
"crig":{
"crig_Standard":10,
"fallback":{"utility":1},
},
"utility":{
"crig_Standard":10,
"ox_Standard":10,
},

As you can probably see, each grouping is labeled in quotes and the variant IDs are and their individual weights are included in the "{}" brackets. In our earlier example. "small" equals "combatSmall" and that grouping includes these variants:

Code
		"wolf_hegemony_CS":10,
"lasher_Standard":5,
"lasher_Strike":5,
"lasher_CS":5,
"lasher_Assault":5,
"vigilance_Standard":10,
"vigilance_FS":10,
"vigilance_Strike":10,
"brawler_Assault":10,
"centurion_Assault":10,

Each variant has a number assigning its weight just like before, and these weights are taken into account after the higher level weights are determined in the generated fleet. So once the fleet generator has determined that a small ship type will be spawned and it will not be an "escort" type ship, it chooses from the variant IDs based upon their own weights and adds that ship to the fleet.

So to summarize, for every time a small, non-escort, combat ship spawns in the fleet composition (higher level layers of probability), it will be twice as likely that it will select a variant ID with a weight of 10 over a weight of 5 (lower level layer of probability).


WHAT IS NOT CLEAR:

SO now for the things I do not know or even have much of a guess on at this point:

1) How does the fleet generator select different groupings for each fleet label? So for example, a "Detachment" fleet is the only fleet that seems to use the "large" or "capital" ship weight. Patrols only can use the "mediumCarrier" type, it will exclusively use the large carrier in detachments. All fleets seem to use the combat freighter probability for any potential freighter spawned yet carriers are never included in freighter fleets. Escorts are even less clear. They sometimes seem to spawn in freighter convoys, sometimes not. Fast picket fleets seems to always exclusively use the "fast" type and ignores all others, but other fleets sometimes use "fast" ships as well, but at random.

The real confusion here is how fighters, bombers and interceptors are chosen. It seems completely irregardless of the weight they are assigned in that increasing the variance of the weights only affects the fleets in which they are spawned at all. The fleets that choose to field them are unclear. As I have said earlier carriers always seem to have a couple extra, and heavier patrols and detachments use the weights seemingly only sometimes. If you want a fighter heavy faction, my recommendation at this point is to include fighters in the "fast" and "smallEscort" grouping at a high weight variance. Even then, it is certainly not a guarantee that there will be some in every fleet and others will sometimes have far too many.

2) How can you determine how many ships are spawned per fleet? This option is not present in the faction file or seemingly in any of the other scripts.


Thanks for reading!!

Pages: 1 [2] 3 4 5