[WIP] [TC] X3 Galaxy

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

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

Post Reply
SpaceCadet11864
Posts: 364
Joined: Tue, 4. Dec 18, 02:14
x4

Re: [WIP] [EXPERIMENT] X3 Galaxy

Post by SpaceCadet11864 » Sat, 15. Dec 18, 10:44

celludriel wrote:
Sat, 15. Dec 18, 10:33
SpaceCadet11864 wrote:
Sat, 15. Dec 18, 09:58
Can you use xmlpatch remove?
thats what I'm planning on @UniTrader on discord is helping me a bit with the xpath stuff , mine is really rusty. This should do the trick

Code: Select all

<replace sel="//cue[@name='FindFactionHeadquarters']/actions/do_if[@exact='faction.argon']/find_cluster/@macro">macro.x3g_cluster01_macro</replace>
I just need to write it in freemarker to generate this diff file. Then find the egosoft dev that hardcoded this into the file and have a "chat"
Hey, if you want to test how xmlpatch works, I compiled the binary to exe viewtopic.php?f=181&t=407862

I also like to use this website to validate whether or not im using the selectors properly: https://www.freeformatter.com/xpath-tester.html

RTest
Posts: 16
Joined: Thu, 29. Nov 18, 01:16
x4

Re: [WIP] [EXPERIMENT] X3 Galaxy

Post by RTest » Sat, 15. Dec 18, 19:54

I did a small (400cluster) test of my generator with the jumpgate connection for the first time.
http://i66.tinypic.com/2a7yfxz.jpg
The result is a bit strange. it seem that the json generator try to ajust the coordinate but sometimes it fails so it end up with overlap or even full overlap like the sector below of the sector name84.

celludriel
Posts: 163
Joined: Thu, 12. Sep 13, 11:29
x4

Re: [WIP] [EXPERIMENT] X3 Galaxy

Post by celludriel » Sat, 15. Dec 18, 20:08

Are you sure you are using the latest version ? I had a similar situation, but I corrected it yesterday. Could be the formula still isn't correct it's annoying to go from cartesian to hex

Code: Select all

   public static final int SEMI_X_MOVEMENT = 15000000;
    public static final int FULL_X_MOVEMENT = 30000000;
    public static final int SEMI_Y_MOVEMENT = 8660000;
    public static final int FULL_Y_MOVEMENT = 17320000;

    @JsonIgnore
    public String getClusterX(){
        return Long.toString(x * SEMI_X_MOVEMENT);
    }

    @JsonIgnore
    public String getClusterZ() {
        if(x % 2 < 0 && y == 0){
            return Long.toString(y - SEMI_Y_MOVEMENT);
        } else if(x % 2 > 0 && y == 0){
            return Long.toString(y + SEMI_Y_MOVEMENT);
        } else if (x % 2 == 0 && y > 0){
            return Long.toString(y * FULL_Y_MOVEMENT);
        } else if (x % 2 == 0 && y < 0){
            return Long.toString(y * FULL_Y_MOVEMENT);
        } else if(y < 0) {
            int offset = x > 0 ? SEMI_Y_MOVEMENT : -SEMI_Y_MOVEMENT;
            return Long.toString(offset - (Math.abs(y) * FULL_Y_MOVEMENT));
        } else if(y > 0) {
            int offset = x > 0 ? SEMI_Y_MOVEMENT : -SEMI_Y_MOVEMENT;
            return Long.toString(offset + (Math.abs(y) * FULL_Y_MOVEMENT));
        }
        return "0";
    }
if there is a bug it's in here. Maybe you can spot it ?

RTest
Posts: 16
Joined: Thu, 29. Nov 18, 01:16
x4

Re: [WIP] [EXPERIMENT] X3 Galaxy

Post by RTest » Sat, 15. Dec 18, 20:10

it wasn't the lastest ^^" you posted while i wrote.

celludriel
Posts: 163
Joined: Thu, 12. Sep 13, 11:29
x4

Re: [WIP] [EXPERIMENT] X3 Galaxy

Post by celludriel » Sat, 15. Dec 18, 20:39

Ok small update

I got the galaxy working, except research so I need to do two more things

- Fix research
- Provide 3 fun gamestarts

then I think I can do a first release

celludriel
Posts: 163
Joined: Thu, 12. Sep 13, 11:29
x4

Re: [WIP] [EXPERIMENT] X3 Galaxy

Post by celludriel » Sat, 15. Dec 18, 21:49

Well I'm really stuck on the research issue atm I tried fixing it by taking the plot script with the boron to the bare minimum

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<mdscript name="UnlockResearch" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="md.xsd">
  <cues>

    <cue name="Start" namespace="this" version="4">
      <conditions>
        <event_cue_signalled cue="md.Setup.Start" />
      </conditions>
      <actions>
        <set_value name="$DebugChance" exact="0"/>

        <!--data used for thread missions relating to md.MC_Management.Thread_Manager-->
        <set_value name="$ThreadOffers" exact="[]"/>
        <set_value name="$ThreadDefinitions" exact="table[]"/>
        <set_value name="$ActiveThreads" exact="[]" comment="List of active instanced thread cues of md.MC_Management.Thread_Manager"/>

        <!--data used for non-thread missions which reference the GM definitions directly-->
        <set_value name="$MissionOffers" exact="[]"/>
        <set_value name="$ActiveMissions" exact="[]" comment="List of active non-thread missions"/>
        <set_value name="$MissionDefinitions" exact="table[]"/>

        <set_value name="$Page" exact="30201" comment="Mentor Mission page"/>
        <set_value name="$CurrentPhase" exact="null"/>
        <set_value name="$PreviousPhase" exact="null"/>

        <set_value name="$LeakStation" exact="null"/>
        <set_value name="$LeakStationSector" exact="null"/>

        <set_value name="$MissionCue" exact="this"/>
        <set_value name="$PickupWare" exact="ware.inv_interfaceunit"/>

        <set_value name="md.Signal_Leaks.Manager.$SuppressSignalLeakGeneration" exact="true"/>

        <set_value name="$SpokenChatterLines" exact="[]"/>

      </actions>
      <cues>
        <library name="ActivatePhase">
          <actions>
            <set_value name="$PreviousPhase" exact="$CurrentPhase"/>
            <set_value name="$CurrentPhase" exact="this"/>
          </actions>
        </library>

		<cue name="Initialise" onfail="cancel">
          <conditions>
            <check_value value="not $CurrentPhase"/>
          </conditions>
          <actions>
            <signal_cue cue="Phase_Research"/>
          </actions>
        </cue>
		
        <cue name="Phase_Research">
          <conditions>
            <event_cue_signalled/>
          </conditions>
          <actions>
			<debug_text text="'Phase research activating'"/>		  
            <include_actions ref="ActivatePhase"/>

            <set_value name="md.Signal_Leaks.Manager.$SuppressSignalLeakGeneration" exact="false"/>
          </actions>
          <cues>
            <cue name="Phase_Research_Keep_Alive">
              <conditions>
                <event_cue_signalled/>
              </conditions>
            </cue>
          </cues>
        </cue>

        <cue name="Research_Started" instantiate="true">
          <conditions>
            <event_player_production_started research="true"/>
          </conditions>
          <actions>
            <debug_text text="event.param + ' - ' + event.param2 + ' - ' + event.param3"/>
          </actions>
        </cue>

        <cue name="Research_Completed" instantiate="true">
          <conditions>
            <event_player_production_finished research="true"/>
          </conditions>
          <actions>
            <debug_text text="event.param + ' - ' + event.param2 + ' - ' + event.param3"/>

            <set_value name="$Unlocked" exact="null"/>

            <do_if value="event.param2 == ware.research_mod_engine_mk1">
              <set_value name="$Unlocked" exact="
              [ware.mod_engine_boostduration_01_mk1,
              ware.mod_engine_boostthrust_01_mk1,
              ware.mod_engine_boostthrust_02_mk1,
              ware.mod_engine_forwardthrust_01_mk1,
              ware.mod_engine_forwardthrust_02_mk1,
              ware.mod_engine_rotationthrust_02_mk1,
              ware.mod_engine_strafethrust_01_mk1,
              ware.mod_engine_strafethrust_02_mk1,
              ware.mod_engine_travelattacktime_01_mk1,
              ware.mod_engine_travelchargetime_01_mk1,
              ware.mod_engine_travelreleasetime_01_mk1,
              ware.mod_engine_travelstartthrust_01_mk1,
              ware.mod_engine_travelthrust_01_mk1,
              ware.mod_engine_travelthrust_02_mk1,]"/>
            </do_if>
            <do_elseif value="event.param2 == ware.research_mod_engine_mk2">
              <set_value name="$Unlocked" exact="
              [ware.mod_engine_boostthrust_01_mk2,
              ware.mod_engine_boostthrust_02_mk2,
              ware.mod_engine_forwardthrust_01_mk2,
              ware.mod_engine_forwardthrust_02_mk2,
              ware.mod_engine_travelthrust_01_mk2,
              ware.mod_engine_travelthrust_02_mk2,]"/>
            </do_elseif>

            <do_elseif value="event.param2 == ware.research_mod_engine_mk3">
              <set_value name="$Unlocked" exact="
              [ware.mod_engine_boostthrust_01_mk3,
              ware.mod_engine_forwardthrust_01_mk3,
              ware.mod_engine_rotationthrust_01_mk3,
              ware.mod_engine_travelthrust_01_mk3,]"/>
            </do_elseif>

            <do_elseif value="event.param2 == ware.research_mod_shield_mk1">
              <set_value name="$Unlocked" exact="
              [ware.mod_shield_capacity_01_mk1,
              ware.mod_shield_rechargedelay_01_mk1,
              ware.mod_shield_rechargerate_01_mk1,]"/>
            </do_elseif>

            <do_elseif value="event.param2 == ware.research_mod_shield_mk2">
              <set_value name="$Unlocked" exact="
              [ware.mod_shield_capacity_01_mk2,
              ware.mod_shield_rechargerate_01_mk2,]"/>
            </do_elseif>

            <do_elseif value="event.param2 == ware.research_mod_shield_mk3">
              <set_value name="$Unlocked" exact="
              [ware.mod_shield_capacity_01_mk3,
              ware.mod_shield_capacity_02_mk3,
              ware.mod_shield_rechargerate_01_mk3,]"/>
            </do_elseif>

            <do_elseif value="event.param2 == ware.research_mod_weapon_mk1">
              <set_value name="$Unlocked" exact="
              [ware.mod_weapon_beamlength_01_mk1,
              ware.mod_weapon_chargetime_01_mk1,
              ware.mod_weapon_cooling_01_mk1,
              ware.mod_weapon_cooling_02_mk1,
              ware.mod_weapon_cooling_03_mk1,
              ware.mod_weapon_damage_01_mk1,
              ware.mod_weapon_damage_02_mk1,
              ware.mod_weapon_damage_03_mk1,
              ware.mod_weapon_lifetime_01_mk1,
              ware.mod_weapon_mining_01_mk1,
              ware.mod_weapon_reload_01_mk1,
              ware.mod_weapon_rotationspeed_01_mk1,
              ware.mod_weapon_speed_01_mk1,
              ware.mod_weapon_sticktime_01_mk1,]"/>
            </do_elseif>

            <do_elseif value="event.param2 == ware.research_mod_weapon_mk2">
              <set_value name="$Unlocked" exact="
              [ware.mod_weapon_cooling_01_mk2,
              ware.mod_weapon_cooling_02_mk2,
              ware.mod_weapon_cooling_03_mk2,
              ware.mod_weapon_cooling_04_mk2,
              ware.mod_weapon_cooling_05_mk2,
              ware.mod_weapon_damage_01_mk2,
              ware.mod_weapon_damage_02_mk2,
              ware.mod_weapon_damage_03_mk2,
              ware.mod_weapon_damage_04_mk2,
              ware.mod_weapon_damage_05_mk2,
              ware.mod_weapon_sticktime_01_mk2,
              ware.mod_weapon_sticktime_02_mk2,
              ware.mod_weapon_sticktime_03_mk2,]"/>
            </do_elseif>

            <do_elseif value="event.param2 == ware.research_mod_weapon_mk3">
              <set_value name="$Unlocked" exact="
              [ware.mod_weapon_damage_01_mk3,
              ware.mod_weapon_damage_02_mk3,
              ware.mod_weapon_mining_01_mk3,
              ware.mod_weapon_speed_01_mk3,]"/>
            </do_elseif>

            <do_elseif value="event.param2 == ware.research_mod_ship_mk1">
              <set_value name="$Unlocked" exact="
              [ware.mod_ship_countermeasurecapacity_01_mk1,
              ware.mod_ship_deployablecapacity_01_mk1,
              ware.mod_ship_drag_01_mk1,
              ware.mod_ship_mass_01_mk1,
              ware.mod_ship_maxhull_01_mk1,
              ware.mod_ship_missilecapacity_01_mk1,
              ware.mod_ship_radarrange_01_mk1,
              ware.mod_ship_unitcapacity_01_mk1,]"/>
            </do_elseif>

            <do_elseif value="event.param2 == ware.research_mod_ship_mk2">
              <set_value name="$Unlocked" exact="
              [ware.mod_ship_drag_01_mk2,
              ware.mod_ship_mass_01_mk2,]"/>
            </do_elseif>

            <do_elseif value="event.param2 == ware.research_mod_ship_mk3">
              <set_value name="$Unlocked" exact="
              [ware.mod_ship_mass_01_mk3,]"/>
            </do_elseif>

            <do_if value="$Unlocked">
              <do_all exact="$Unlocked.count" counter="$i">
                <add_encyclopedia_entry item="$Unlocked.{$i}.id" type="equipmentmods"/>
                <add_blueprints wares="$Unlocked.{$i}"/>
              </do_all>
            </do_if>
          </actions>
        </cue>

        <cue name="Datavaults">
          <actions>
            <set_value name="$MissionCue_Datavaults" exact="this"/>
          </actions>
          <cues>
            <cue name="Datavaults_Start">
              <conditions>
                <event_object_signalled object="player.entity" param="'datavault_unlocked'"/>
                <check_value value="$CurrentPhase != Phase_SignalLeak"/>
              </conditions>
              <actions>
                <do_if value="md.PlacedObjects.Place_DataVaults.$UnlockedVaultsGroup.count ge md.PlacedObjects.Place_DataVaults.$VaultsGroup.count">
                  <!--This was the final datavault-->
                  <signal_cue cue="Datavaults_End"/>
                </do_if>
              </actions>
              <cues>
                <cue name="Datavaults_Create_Mission">
                  <conditions>
                    <event_speak_finished actor="$Boron_Mentor" line="30201192"/>
                  </conditions>
                  <actions>
                    <create_mission cue="$MissionCue_Datavaults" name="{30201,400}" description="{30201,401}" type="missiontype.plot" faction="faction.civilian" difficulty="level.hard" abortable="false">
                      <briefing>
                        <objective step="1" action="objective.unlock" text="{20109,8901} + ' ' + md.PlacedObjects.Place_DataVaults.$UnlockedVaultsGroup.count + ' / ' + md.PlacedObjects.Place_DataVaults.$VaultsGroup.count"/>
                      </briefing>
                    </create_mission>

                    <set_objective cue="$MissionCue_Datavaults" action="objective.unlock" text="{20109,8901}">
                      <progress text="{20109,8901}" progress="md.PlacedObjects.Place_DataVaults.$UnlockedVaultsGroup.count" max="md.PlacedObjects.Place_DataVaults.$VaultsGroup.count"/>
                    </set_objective>
                  </actions>
                </cue>

                <cue name="Datavaults_Unlock" instantiate="true">
                  <conditions>
                    <event_object_signalled object="player.entity" param="'datavault_unlocked'"/>
                  </conditions>
                  <actions>
                    <do_if value="md.PlacedObjects.Place_DataVaults.$UnlockedVaultsGroup.count ge md.PlacedObjects.Place_DataVaults.$VaultsGroup.count">
                      <!--This was the final datavault-->
                      <signal_cue cue="Datavaults_End"/>
                    </do_if>
                    <do_else>
                      <update_mission cue="$MissionCue_Datavaults">
                        <briefing>
                          <objective step="1" action="objective.unlock" text="{20109,8901} + ' ' + md.PlacedObjects.Place_DataVaults.$UnlockedVaultsGroup.count + ' / ' + md.PlacedObjects.Place_DataVaults.$VaultsGroup.count"/>
                        </briefing>
                      </update_mission>

                      <set_objective cue="$MissionCue_Datavaults" action="objective.unlock" text="{20109,8901}">
                        <progress text="{20109,8901}" progress="md.PlacedObjects.Place_DataVaults.$UnlockedVaultsGroup.count" max="md.PlacedObjects.Place_DataVaults.$VaultsGroup.count"/>
                      </set_objective>
                    </do_else>
                  </actions>
                </cue>

                <cue name="Datavaults_End">
                  <conditions>
                    <event_cue_signalled/>
                  </conditions>
                  <actions>               
                    <set_value name="$All_Datavaults_Unlocked" exact="true"/>
                    <remove_mission cue="$MissionCue_Datavaults"/>
                  </actions>
                </cue>

                <cue name="Datavaults_KeepAlive">
                  <conditions>
                    <event_cue_signalled/>
                  </conditions>
                </cue>
              </cues>
            </cue>
          </cues>
        </cue>
      </cues>
    </cue>
  </cues>
</mdscript>
However the research is unlocked but you can't research anything cause it thinks a research is in progress which is not ofcourse. One option I have is to give the player just all researches there are and be done with it

User avatar
OneOfMany
Posts: 448
Joined: Thu, 15. May 14, 14:25
x4

Re: [WIP] [EXPERIMENT] X3 Galaxy

Post by OneOfMany » Sat, 15. Dec 18, 23:16

Stick at it, you may find folks playing your mod more than the original :)

RTest
Posts: 16
Joined: Thu, 29. Nov 18, 01:16
x4

Re: [WIP] [EXPERIMENT] X3 Galaxy

Post by RTest » Sat, 15. Dec 18, 23:34

There is a definitive improvement the only wierd bug are only in a center and there is only a few of them.
http://i68.tinypic.com/2a4oaw5.jpg
I think that is on my side now for the few bad cluster near the center of the galaxy i will look at it later...

lavak9
Posts: 43
Joined: Thu, 6. Dec 18, 23:38
x4

Re: [WIP] [EXPERIMENT] X3 Galaxy

Post by lavak9 » Sun, 16. Dec 18, 00:59

celludriel wrote:
Sat, 15. Dec 18, 20:39
Ok small update

I got the galaxy working, except research so I need to do two more things

- Fix research
- Provide 3 fun gamestarts

then I think I can do a first release
That is exciting!!!

celludriel
Posts: 163
Joined: Thu, 12. Sep 13, 11:29
x4

Re: [WIP] [EXPERIMENT] X3 Galaxy

Post by celludriel » Sun, 16. Dec 18, 03:32

Well I'm not calling it a "release" just yet. I have some personal testing to do before I call it a release, maybe some refinement.

https://github.com/Celludriel/x4_x3_gal ... evelop.zip

Give it a shot, give me your ideas and feedback. You should be able to play it. There are four gamestarts, one for each major faction. Pick your favorite and see what it gives.

nickolaiproblem
Posts: 246
Joined: Mon, 5. Nov 18, 23:12
x4

Re: [WIP] [EXPERIMENT] X3 Galaxy

Post by nickolaiproblem » Sun, 16. Dec 18, 04:44

celludriel wrote:
Sun, 16. Dec 18, 03:32
Well I'm not calling it a "release" just yet. I have some personal testing to do before I call it a release, maybe some refinement.

https://github.com/Celludriel/x4_x3_gal ... evelop.zip

Give it a shot, give me your ideas and feedback. You should be able to play it. There are four gamestarts, one for each major faction. Pick your favorite and see what it gives.
I don't have any stations or npcs when I play with the mod installed

RTest
Posts: 16
Joined: Thu, 29. Nov 18, 01:16
x4

Re: [WIP] [EXPERIMENT] X3 Galaxy

Post by RTest » Sun, 16. Dec 18, 09:23

I ran into some problems... right now the current json format support only NW N NE SW S SE.
So there is 6 connection aviable it's perffectly fine for a fully filled grid like the exemple below.

Code: Select all

{
	"targetClusterId": "47",
        "connectionType": "SW"
},
But i doesn't use an fully filled galaxy so i end up with more than 6 connections sometimes or in other case i got 2 or more but in a single direction like NW. As an exemple bellow

Code: Select all

"connections": [
	 {
		"targetClusterId": "115",
		"connectionType": "NW"
	},
	{
		"targetClusterId": "38",
		"connectionType": "S"
	},
	{
		"targetClusterId": "394",
		"connectionType": "NW"
	}
]
Why not create an add a custom type for those that doesn't want only 6 connection at a fixed place like that.

Code: Select all

"connections": [
	 {
		"targetClusterId": "394",
		"connectionType": "NW"
	 },
	 {
		"targetClusterId": "115",
		"connectionType": "CUSTOMCONNECTIONTYPE"
		"startGateOrientation': "23";
		"startGatePositionX": "260000";
		"startGatePositionY": "-58000";
		"endGateOrientation': "140";
		"endGatePositionX": "76000";
		"endGatePositionY": "158000";
	 }
]
It could be extended later with the anomaly(like the one in the plot HQ) that are in X4 and that are detected with long range scan.

I realy like to search the gate i think it s an important part of the exploration, 6 gate at fixed postion that are in same place in every sector remove a part of the fun.

celludriel
Posts: 163
Joined: Thu, 12. Sep 13, 11:29
x4

Re: [WIP] [EXPERIMENT] X3 Galaxy

Post by celludriel » Sun, 16. Dec 18, 10:13

nickolaiproblem wrote:
Sun, 16. Dec 18, 04:44

I don't have any stations or npcs when I play with the mod installed
Can you be a bit more specific ? Do you mean you can't build any stations or you don't see any stations anywere. You can consider this mod as a "conversion mod" with this one running you can't play the vanilla starts anymore since the god engine removes all stations and locations first. I'll test myself for the npc's cause I haven't noticed that one yet.

edit: I tested it myself for the NPC's and I have them in my game

https://steamuserimages-a.akamaihd.net/ ... D6E4B8CEC/
https://steamuserimages-a.akamaihd.net/ ... 6A3CA2A29/
https://steamuserimages-a.akamaihd.net/ ... E272F5229/

maybe it's a mod conflict with another mod ? Also can you tell me how you test this mod ? Did you start a new game or opened a save from vanilla ?

@rtest

I'll see what I can do , for giving you a custom connection

celludriel
Posts: 163
Joined: Thu, 12. Sep 13, 11:29
x4

Re: [WIP] [EXPERIMENT] X3 Galaxy

Post by celludriel » Sun, 16. Dec 18, 11:10

@Rtest

I added a CUSTOM gate implementation it's in the develop branch of the generator here is an example

Code: Select all

    {
      "id": "01",
      "name": "Argon Prime",
      "description": "Argon Prime",
      "music": "music_cluster_02",
      "sunlight": "1",
      "economy": "0.75",
      "security": "0.75",
      "x": 0,
      "y": 0,
      "backdrop": "empty_space",
      "factionHq": "ARGON",
      "factionStart": {
        "faction": "ARGON",
        "name": "The Argon Saga",
        "playerName": "Vel Driar",
        "description": ""
      },
      "connections": [
        {
          "targetClusterId": "03",
          "connectionType": "SE"
        },
        {
          "targetClusterId": "05",
          "connectionType": "S"
        },
        {
          "targetClusterId": "07",
          "connectionType": "CUSTOM",
          "parameters": {
            "startRotation": 20,
            "startPositionX": 30000,
            "startPositionY": 30000,
            "endRotation": 340,
            "endPositionX": -30000,
            "endPositionY": -30000
          }
        }
      ],
      "stations": [
        {"type": "SHIPYARD", "race":  "ARGON", "owner": "ARGON", "faction": "ARGON"},
        {"type": "WHARF", "race":  "ARGON", "owner": "ARGON", "faction": "ARGON"},
        {"type": "DEFENCE", "race":  "ARGON", "owner": "ARGON", "faction": "ARGON"}
      ]
    }

nickolaiproblem
Posts: 246
Joined: Mon, 5. Nov 18, 23:12
x4

Re: [WIP] [EXPERIMENT] X3 Galaxy

Post by nickolaiproblem » Sun, 16. Dec 18, 16:50

celludriel wrote:
Sun, 16. Dec 18, 10:13
nickolaiproblem wrote:
Sun, 16. Dec 18, 04:44

I don't have any stations or npcs when I play with the mod installed
Can you be a bit more specific ? Do you mean you can't build any stations or you don't see any stations anywere. You can consider this mod as a "conversion mod" with this one running you can't play the vanilla starts anymore since the god engine removes all stations and locations first. I'll test myself for the npc's cause I haven't noticed that one yet.

edit: I tested it myself for the NPC's and I have them in my game

https://steamuserimages-a.akamaihd.net/ ... D6E4B8CEC/
https://steamuserimages-a.akamaihd.net/ ... 6A3CA2A29/
https://steamuserimages-a.akamaihd.net/ ... E272F5229/

maybe it's a mod conflict with another mod ? Also can you tell me how you test this mod ? Did you start a new game or opened a save from vanilla ?

@rtest

I'll see what I can do , for giving you a custom connection
Completely new game I started it with only game start mods (Like CAS or trade starts) and cheat mods (So I can move around the map without using my ship. I basically turned on my cheat mod and set it so I can instantly teleport my ship all over the map and also see the entire map. I basically jumped from place to place trying to see if they were any station but I didn't see any I might try again.

celludriel
Posts: 163
Joined: Thu, 12. Sep 13, 11:29
x4

Re: [WIP] [EXPERIMENT] X3 Galaxy

Post by celludriel » Sun, 16. Dec 18, 17:28

You could also start your game in debug adding the following params to the exe

-debug all -logfile debuglog.txt

there will be a debug file you can check in C:\Users\<<your user>>\Documents\Egosoft\X4\2480289. There could be errors in there giving us an explaination you don't see any stations and jobs

Fixed two small bugs

- Ownership of tradestation in queens space was wrong
- Sience wasn't being applied to the gamestarts

RTest
Posts: 16
Joined: Thu, 29. Nov 18, 01:16
x4

Re: [WIP] [EXPERIMENT] X3 Galaxy

Post by RTest » Sun, 16. Dec 18, 17:49

First of all thx for the CUSTOM gate. If i understand coorectly all the rest(product, jobs …. ) after the cluster definition work out of box?. Of couse it must be tweaked for better result i think. i still have some error with the cluster coordinate but Nothing game breaking now 2 cluster are at the wrong place(name1 and 2) on a manualy edited json.

Code: Select all

{
  "galaxyName": "x3galaxy",
  "galaxyPrefix": "x3g",
  "description": "Original X3 galaxy",
  "author": "unknown",
  "version": "1.0.0",
  "date": "2018-12-12",
  "save": "0",
  "clusters": [
    {
      "id": "0",
      "name": "name0",
      "description": "description",
      "music": "description",
      "sunlight": "description",
      "economy": "description",
      "security": "description",
      "x": "0",
      "y": "0",
      "backdrop": "empty_space",
      "factionHq": "ARGON",
      "factionStart": {
        "faction": "ARGON",
        "name": "The Argon Saga",
        "playerName": "Vel Driar",
        "description": ""
      },
      "connections": [
        {
          "targetClusterId": "1",
          "connectionType": "CUSTOM",
          "parameters": {
            "startRotation": "273",
            "startPositionX": "-12600",
            "startPositionY": "6400",
            "endRotation": "453",
            "endPositionX": "126000",
            "endPositionY": "-64000"
          }
        },
        {
          "targetClusterId": "2",
          "connectionType": "CUSTOM",
          "parameters": {
            "startRotation": "277",
            "startPositionX": "-12600",
            "startPositionY": "-6400",
            "endRotation": "457",
            "endPositionX": "12600",
            "endPositionY": "6400"
          }
        },
        {
          "targetClusterId": "5",
          "connectionType": "CUSTOM",
          "parameters": {
            "startRotation": "280",
            "startPositionX": "12600",
            "startPositionY": "6400",
            "endRotation": "460",
            "endPositionX": "-12600",
            "endPositionY": "-6400"
          }
        },
        {
          "targetClusterId": "6",
          "connectionType": "CUSTOM",
          "parameters": {
            "startRotation": "270",
            "startPositionX": "12600",
            "startPositionY": "-6400",
            "endRotation": "50",
            "endPositionX": "-12600",
            "endPositionY": "6400"
          }
        },
        {
          "targetClusterId": "3",
          "connectionType": "CUSTOM",
          "parameters": {
            "startRotation": "255",
            "startPositionX": "0",
            "startPositionY": "-14000",
            "endRotation": "435",
            "endPositionX": "0",
            "endPositionY": "14000"
          }
        },
        {
          "targetClusterId": "4",
          "connectionType": "CUSTOM",
          "parameters": {
            "startRotation": "254",
            "startPositionX": "0",
            "startPositionY": "14000",
            "endRotation": "434",
            "endPositionX": "0",
            "endPositionY": "-14000"
          }
        }
      ]
    },
    {
      "id": "1",
      "name": "name1",
      "description": "description",
      "music": "description",
      "sunlight": "description",
      "economy": "description",
      "security": "description",
      "x": "-1",
      "y": "0",
      "backdrop": "empty_space",
      "factionStart": {
        "faction": "PARANID",
        "name": "The Argon Saga",
        "playerName": "Vel Driar",
        "description": "2"
      }
    },
    {
      "id": "2",
      "name": "name2",
      "description": "description",
      "music": "description",
      "sunlight": "description",
      "economy": "description",
      "security": "description",
      "x": "-1",
      "y": "-1",
      "backdrop": "empty_space",
      "factionStart": {
        "faction": "TELADI",
        "name": "The Argon Saga",
        "playerName": "Vel Driar",
        "description": "2"
      }
    },
    {
      "id": "3",
      "name": "name3",
      "description": "description",
      "music": "description",
      "sunlight": "description",
      "economy": "description",
      "security": "description",
      "x": "0",
      "y": "1",
      "backdrop": "empty_space",
      "factionStart": {
        "faction": "HOLYORDER",
        "name": "The Argon Saga",
        "playerName": "Vel Driar",
        "description": "2"
      }
    },
    {
      "id": "4",
      "name": "name4",
      "description": "description",
      "music": "description",
      "sunlight": "description",
      "economy": "description",
      "security": "description",
      "x": "0",
      "y": "-1",
      "backdrop": "empty_space"
    },
    {
      "id": "5",
      "name": "name5",
      "description": "description",
      "music": "description",
      "sunlight": "description",
      "economy": "description",
      "security": "description",
      "x": "1",
      "y": "0",
      "backdrop": "empty_space"
    },
    {
      "id": "6",
      "name": "name6",
      "description": "description",
      "music": "description",
      "sunlight": "description",
      "economy": "description",
      "security": "description",
      "x": "1",
      "y": "-1",
      "backdrop": "empty_space"
    }
  ]
}


lavak9
Posts: 43
Joined: Thu, 6. Dec 18, 23:38
x4

Re: [WIP] [EXPERIMENT] X3 Galaxy

Post by lavak9 » Sun, 16. Dec 18, 17:53

celludriel wrote:
Sun, 16. Dec 18, 03:32
Well I'm not calling it a "release" just yet. I have some personal testing to do before I call it a release, maybe some refinement.

https://github.com/Celludriel/x4_x3_gal ... evelop.zip

Give it a shot, give me your ideas and feedback. You should be able to play it. There are four gamestarts, one for each major faction. Pick your favorite and see what it gives.
Only had a short time to play last night my friend but got into and started exploring no issue, running a few combat mods too which dont seem to interfere at all so quite pleased thus far.
Two issues I have encountered are no text descriptions for gamestarts (realize you may just not have them in yet) and when I choose the Teladi start I am actually a Paranid.... both super minor issues but thought I'd report.

4 sectors explored in Teladi space and trade seems to be flowing as expected and all kinds of mining and fighter patrols as I fly around. I will report back when I have had some more time with it.

celludriel
Posts: 163
Joined: Thu, 12. Sep 13, 11:29
x4

Re: [WIP] [EXPERIMENT] X3 Galaxy

Post by celludriel » Sun, 16. Dec 18, 18:14

@lavak9

- I haven't put in the descriptions yet for the gamestarts, I'll have to come up with generic but fitting once , just need some inspiration
- Are you sure you have the latest version ? I just tested a teladi start it seems to work

https://steamuserimages-a.akamaihd.net/ ... 8737DE1C4/

https://steamuserimages-a.akamaihd.net/ ... 31B672849/

Isn't a falcon teladi ? It should default to this ship: ship_tel_s_fighter_01_a_macro

@Rtest

It "should" work out of the box. But the bigger the galaxy the harder the balancing. I don't think there is anything really custom in there. At least not yet, I still have a few ideas. Like random abandonned ship placement and the landmarks/datavaults that are currently totally not in

Hornet108
Posts: 343
Joined: Thu, 15. Nov 12, 13:46
x4

Re: [WIP] [EXPERIMENT] X3 Galaxy

Post by Hornet108 » Sun, 16. Dec 18, 19:24

This might be a noob question, but, I tried to start a new game, and it just keeps crashing? I have one other mod (shield rebalance) installed and it is disabled. I have tried in the link you provided previously and the latest commit from github, neither work

Any ideas?

Post Reply

Return to “X4: Foundations - Scripts and Modding”