But as a game, X Rebirth does have many issues. While we are now in version 3.xx and most major bugs have been ironed out, and the UI has been vastly-improved, there are still many frustrating things left in the game.
Ever since I started playing back in the version 1.xx days, I have been editing my save game heavily (particularly because many of the issues could not be resolved through modding, or the mods I wanted weren't made yet). This is a collection of little save game editing tricks I have learned, which I hope will be of help to some of you out there.
Some Basic Tricks
- Switching Property Ownership: This is one of the most useful tricks in the bag, and not just for obvious reasons (see practical, game-fixing usage in "Advanced Tricks" section).
- Locate the object in your save game file. One easy way to do this (for ships and stations) is to open the Info window about the object in-game and make a note of the names of the crew. Open up your savegame file in Notepad++ and search for the name of the crew, then scroll up a few pages to find something like this:
This is the beginning of the code segment for a Balor in my game, belonging to Heart of Albion. Note that the object's "macro" denotes its identity (so if you search for "units_size_l_single_attack_ship_macro", you can easily find all the Balors in your save game).
Code: Select all
<connection connection="ships"> <component class="ship_l" macro="units_size_l_single_attack_ship_macro" connection="space" attackmethod="lowattentionattack" attacktime="467274.288" owner="heartofalbion" id="[0x12751]">
- To change the ownership of the object, simply change the owner to some other faction. Using the example above, simply change owner="heartofalbion" to owner="player". Likewise, you can give the ship to Plutarch by typing owner="plutarch".
- You are not done yet! For ships and stations, you must also change the ownership of all of its crew member to match, otherwise the game will be a bit confused. So scroll down and locate the code for the ship or station's crew. This is an example code for a in-game NPC serving as the crew aboard the Balor:
Like before, change the owner to something else.
Code: Select all
<component class="npc" macro="character_ar_male_engineer_macro" connection="commandroomslot" name="Kriss Keswen" owner="heartofalbion" page="10108" id="[0x3fb3]"> <listeners> <listener listener="[0x3faa]" event="killed"/> </listeners> <skills> <skill type="boarding" value="3"/> <skill type="combat" value="3"/> <skill type="engineering" value="4"/> <skill type="leadership" value="1"/> <skill type="management" value="1"/> <skill type="morale" value="2"/> <skill type="navigation" value="3"/> <skill type="science" value="2"/> </skills> <entity type="engineer" control="1"/> <npcseed bodyparts="486748545" bonescales="3118047701" morphtargetweights="308306312"/>
- Locate the object in your save game file. One easy way to do this (for ships and stations) is to open the Info window about the object in-game and make a note of the names of the crew. Open up your savegame file in Notepad++ and search for the name of the crew, then scroll up a few pages to find something like this:
- Changing NPC appearance: So the character models in XR aren't exactly the best. There is a mod that gets rid of "space granny", but if you really want precise control over the appearance of the crew you hire for your ships and stations, there's a way to do that.
- Refer again to the code for the Balor engineer I posted above. Take a note of the following two lines:
Code: Select all
macro="character_ar_male_engineer_macro"
The first line denotes what basic character model to use (determines the basic costume), while the second line denotes which specific props to put on the character (facial detail, hairstyle, head gear or eye piece, etc.).Code: Select all
<npcseed bodyparts="486748545" bonescales="3118047701" morphtargetweights="308306312"/>
- Now let's say you find a NPC whose model you really like - take a note of the character's name and faction (in case there are duplicate names, and it does happen a lot). Open up your save game file and locate the character. Copy those two lines above and paste it over to a character whose appearance you want to alter. Load the game up and you should see the change immediately. You can use this to, for example, make your capital ship captains wear the outfit of a station manager, or even give them exotic looks like those of Karen Stringer or Neyl Colbern.
- For your convenience, here are some character models I have already collected:
Code: Select all
Female Manager (young): character_ar_female_manager_macro <npcseed bodyparts="1003404946" bonescales="2576516157" morphtargetweights="4042303241" /> Female Commander (young): character_ar_female_commander_macro <npcseed bodyparts="1624445479" bonescales="3535015010" morphtargetweights="1085522985"/> Default female model for DeVries captains and engineers. character_ar_female_dv_a_macro <npcseed bodyparts="26929845" bonescales="4179750139" morphtargetweights="4231862317"/> Default female model for DeVries defense officers. character_ar_female_dv_b_macro <npcseed bodyparts="179435091" bonescales="254638961" morphtargetweights="2084068844" /> Female Architect (young, no hat) character_ar_female_architekt_macro <npcseed bodyparts="3571871263" bonescales="3387243027" morphtargetweights="4037868578" /> Female Pilot (young, no helmet) character_ar_female_pilot_macro <npcseed bodyparts="867836723" bonescales="502066632" morphtargetweights="1829683577"/> Female Trader (comes in two versions) character_ar_female_trader_macro <npcseed bodyparts="250972829" bonescales="380680941" morphtargetweights="3201310223" /> (no collar) <npcseed bodyparts="2136583424" bonescales="2025760725" morphtargetweights="2925621650"/> (collar) Model for Karen Stringer plotcharacter_karen_stringer_macro <npcseed bodyparts="2452160509" bonescales="2188508271" morphtargetweights="4261796679" /> Model for Debora Gimbal plotcharacter_debora_gimbal_macro <npcseed bodyparts="1992451867" bonescales="3816658443" morphtargetweights="3890017621"/> Model for Mariya Rybak plotcharacter_mariya_rybak_macro <npcseed bodyparts="24857519" bonescales="176531425" morphtargetweights="1066980906" /> ---------------------------------------------- Male Manager character_ar_male_manager_macro <npcseed bodyparts="3021179102" bonescales="3041595206" morphtargetweights="1004252757" /> Male Commander (comes in three versions) character_ar_male_commander_macro <npcseed bodyparts="3142204972" bonescales="1194773643" morphtargetweights="1893552787"/> (sunglasses) <npcseed bodyparts="3360752022" bonescales="2549853607" morphtargetweights="2645844332"/> (young) <npcseed bodyparts="137339577" bonescales="3649637249" morphtargetweights="3721921829"/> (old) Default model for male DeVries engineer. character_ar_male_dv_b_macro <npcseed bodyparts="3501816101" bonescales="2961252727" morphtargetweights="550884836" /> Default model for male DeVries captain and defense officer. character_ar_male_dv_a_macro <npcseed bodyparts="4063816559" bonescales="1141139952" morphtargetweights="3911161499"/> (sunglasses) Male defense officer character_ar_male_defense_macro <npcseed bodyparts="3282028987" bonescales="1740444255" morphtargetweights="2019902275" /> Various models for male black marketeer character_argon_male_generic <npcseed bodyparts="399753809" bonescales="788109066" morphtargetweights="902013575" /> (white uniform) <npcseed bodyparts="1680392520" bonescales="3893288726" morphtargetweights="385578610" /> (brown uniform) <npcseed bodyparts="853367674" bonescales="1763960338" morphtargetweights="2626859357"/> (blue uniform) <npcseed bodyparts="2109554454" bonescales="3606732455" morphtargetweights="2545176150" /> (brown vest) <npcseed bodyparts="2601597665" bonescales="765031291" morphtargetweights="2772299903" /> (purple vest) <npcseed bodyparts="388905717" bonescales="530656869" morphtargetweights="419508207" /> (grey vest) <npcseed bodyparts="4062589817" bonescales="2366213989" morphtargetweights="4076891092" /> (red vest) <npcseed bodyparts="3114213554" bonescales="282231769" morphtargetweights="919187378"/> (black vest) Male trader character_ar_male_trader_macro <npcseed bodyparts="3269539048" bonescales="642649910" morphtargetweights="2050722166" /> Male farmer character_ar_male_farmer_macro <npcseed bodyparts="2466536718" bonescales="2183859762" morphtargetweights="802342481"/> Model for Neyl Colbern plotcharacter_neyl_colbern_macro <npcseed bodyparts="834725855" bonescales="660900041" morphtargetweights="4146679125" /> Model for Falk Borman plotcharacter_falk_borman_macro <npcseed bodyparts="1908692288" bonescales="2403279165" morphtargetweights="3807498669"/>
- Refer again to the code for the Balor engineer I posted above. Take a note of the following two lines:
- Prevent NPC Patrol Ships from Turning Hostile to Friendly Factions: One of the biggest issues in XR is the way NPC ships can turn hostile due to friendly fire (not just toward the player, but toward each other). Sometimes a station and a NPC destroyer on patrol duty will accidentally hit each other while firing at pirates, causing them to become hostile toward one another. You leave the sector for a while and come back to a half-wrecked station and a NPC patrol that's turned hostile to all ships and stations belonging to a faction it's supposed to protect. There is a way to prevent this.
- Locate the code in your save file for the patrol ship you want to prevent from turning hostile toward friendly faction (again, using the names of its crew is an easy way to do this). You can also search for the macro of a particular ship type to locate all the patrol ships present in your game (for example, all NPC Taranis are set to patrol duty). Scroll down a few pages - right above where the section for shields and turrets begin, you will find a few lines of code similar to this:
Note that the exact content of the "source job" line varies depending on the ship type and its job description.
Code: Select all
<drop ref="ship_large_military"/> <source job="hoa_chapter2_medium_frigate_sector18" class="job"/>
- Insert the following line after the above code:
This will prevent the ship's commander from turning hostile due to friendly fire (don't worry, he will still attack ships belonging to enemy factions).
Code: Select all
<relations change="0"/>
- If the ship or station in question has already turned hostile toward a friendly faction and you are trying to stop it from firing, you will have to locate and delete two things:
- Look for the tag <turrettargets>, which tells the ship what its current combat targets are. If the ship is currently in combat, it will have this code. Delete it and everything in between.
Code: Select all
<turrettargets> <combat> <object id="[0x10f57]"/> </combat> </turrettargets>
- Next, look under the code for the ship's pilot or commander. You will likely see something like this (note that for stations, this code goes under the Defense Officer instead of the Manager):
These codes tell the commander who his "temporary" enemies are (there is a decay rate, meaning if he doesn't get fired upon by that faction for a while, he eventually turns back to neutral. Problem is if he's in combat with a station, he probably won't ever turn back neutral)
Code: Select all
<relations> <booster faction="heartofalbion" relation="-1" time="486768.74" delay="540" decayrate="0.02"/> </relations> <tolerance> <booster faction="heartofalbion" value="-1" time="486754.51" delay="10" decayrate="0.05"/> </tolerance>
The <relations> tag won't always be present, but if the ship has turned hostile toward a friendly faction, then the <tolerance> tag will definitely be there. Remove any of these if you see them.
- Look for the tag <turrettargets>, which tells the ship what its current combat targets are. If the ship is currently in combat, it will have this code. Delete it and everything in between.
- Locate the code in your save file for the patrol ship you want to prevent from turning hostile toward friendly faction (again, using the names of its crew is an easy way to do this). You can also search for the macro of a particular ship type to locate all the patrol ships present in your game (for example, all NPC Taranis are set to patrol duty). Scroll down a few pages - right above where the section for shields and turrets begin, you will find a few lines of code similar to this:
- Neutralizing Reiver Outposts: The Reiver stations in DeVries are a problem if you wish to build your own stations inside zones that have them. Not only do they attack your stations and CV, they also pose an issue for your patrol ships (since your patrol ships will never be able to fully destroy the Reiver stations, they will be stuck attacking them forever - meanwhile ignoring all Reiver ships that may spawn in the sector). There was a discussion thread a while back about how to permanently remove them, but apparently deleting the codes for them didn't do the trick at all. There is a much simpler solution - switch their ownership to Canteran.
- Search for "struct_bt_dv_reiver" in your save game file. You will find a total of 5 stations. The codes will look something like this (there are three different station models, so they will be labeled "reivers_outpost_01" to "_03" accordingly:
Code: Select all
<component class="station" macro="struct_bt_dv_reivers_outpost_03_macro" connection="space" attacker="[0x1c29]" attackmethod="lowattentionattack" attacktime="429051.92" owner="reivers" knownto="player" nameindex="1" id="[0x1eb1]">
- Change the owner to "canteran"; remember to do the same for the crew of each station as well (there should be three crews per station: Manager, Defense Officer, and Engineer). Also remember to check for any <relations> or <tolerance> tag under the Defense Officer; if you see any, delete them.
- Load up the game and you should see the stations listed as "RoC Way Station" instead of "REI Way Station". It is now safe to build next to them.
- Search for "struct_bt_dv_reiver" in your save game file. You will find a total of 5 stations. The codes will look something like this (there are three different station models, so they will be labeled "reivers_outpost_01" to "_03" accordingly:
- Stopping the Marauder Phoenix rampage in Fields of Opportunity: Currently the game spawns an insane number of Marauder Phoenix belonging to UA and CAR. They rampage the sector and destroy tons of trade ships, and the Teladi stations and patrol ships just stand idly and watch. This is unfortunately due to a limitation in the way the game handles faction relations - the Teladi Union considers UA and CAR neutral to them, so they won't attack their ships. The only Teladi ships that turn hostile would be the ones that come under fire - in this case the helpless trade ships who can't do anything against them anyway. Until Egosoft does something about the issue, here's a temporary fix.
- Open up your save and look for <faction id="teladi">. Now change their relations to "teladipirate", "teladidrugrunner" and "teladigunrunner" to the negative (see example below)
This will cause Teladi Union stations and patrol ships to attack Marauder Phoenixes. Unfortunately, the Teladi Union only operates Condors as patrols, which are less powerful than the Phoenix (and in smaller numbers, too). So further actions are required.
Code: Select all
<faction id="teladi"> <relations> <relation faction="reivers" relation="-0.32"/> <relation faction="xenon" relation="-0.5"/> <relation faction="enemy" relation="-0.5"/> <relation faction="smuggler" relation="-0.06"/> <relation faction="criminal" relation="-0.5"/> <relation faction="sovereignsyndicate" relation="-0.5"/> <relation faction="hereticvanguards" relation="-0.5"/> <relation faction="teladipirate" relation="-0.5"/> <relation faction="teladidrugrunner" relation="-0.5"/> <relation faction="teladigunrunner" relation="-0.5"/> <booster faction="player" relation="0.526526" time="480634.624"/> </relations>
- Next we are going to "commandeer" some Phoenixes away from the UA and CAR factions. Look in your save game for "units_size_xl_te_kit_none_03_macro", which is the macro for Phoenix. Change any that belongs to "teladidrugrunner" or "teladigunrunner" to be owned by you.
Special note concerning <source job> tags: Like all patrol ships, the Phoenixes will carry a <source job> tag. Specifically, they look like these (depending on their faction)The game uses these <source job> tags to keep track of how many NPC patrol ships there are. If it detects a loss of NPC patrol ship, it will spawn a replacement.Code: Select all
<source job="pirate_plunder_gunrunner" class="job"/> or <source job="pirate_plunder_drugrunner" class="job"/>
The game does not however take into account the ownership of the ships who have these tags. This means you could effectively "block" the game from spawning more Marauder Phoenixes belonging to UA or CAR by switching their ownership to someone else, but keeping the <source job> tags there. Same applies to, say, if you want to prevent the game from spawning more Plutarch patrols to harass HOA sectors.
For my guide, though, I will assume you have removed these tags to allow further NPC patrols to spawn. - Now load up your game. You should now see a bunch of Phoenixes under your property menu. Assign them to your squad and tell them to patrol sectors that contain Teladi Union assets (you can even organize them into sub-squadrons so they will stay in formation and be more effective)
- Once all patrol orders have been given, remove the Phoenixes from your squadron (important!), save the game, then quit. Now open up the save game in Notepad++ again and change the ownership of the Phoenixes to "teladi".
- Load up your game. You should now see a bunch of Phoenixes belonging to Teladi Union on patrol! They will attack any UA/CAR Marauder Phoenix they encounter.
- "Re-Purpose" Idle Plot Ships: There are several capital ships that were spawned as a part of the plot, who just sits around idly with no command issued. This bothers me, since they could be doing something more productive (like taking care of the Marauder Titurel that just spawned in their zone!). Just off the top of my head:
- An idle Arawn sitting in Auspicious Excavation, by the gate to DeVries.
- An idle Scaldis in Lava Flow.
- Two idle Olmekron in Vapour Stream, next to gate to Olmecron Lyrae.
- An Arawn and a Sucellus idle in Cryptic Heart.
- Find the idle ship in question by searching for the crew's name. Switch owner of ship and crew to you.
- Load up the game, add ship to squad, issue patrol command, remove from squad and save.
- Open up save file again and switch ownership back to original faction.
Special note: In two instances, you will find idle capital ships without a Captain. You will have to hire and assign one before you can issue commands to those ships. Furthermore, some of the plot captains carry a special tag that prevents you from issuing them squad commands.Remove the "missionactor" and "customconversation" entries to gain control of the captain. You can add them back after you have issued the patrol command and saved the game.Code: Select all
<entity type="commander" control="1" missionactor="1" customconversation="1"/>
- Open up your save and look for <faction id="teladi">. Now change their relations to "teladipirate", "teladidrugrunner" and "teladigunrunner" to the negative (see example below)
- Making NPC Patrols Invulnerable: In some cases, such as if you decide to repurpose a bunch of UA/CAR Phoenixes to the TU faction for anti-piracy duty, you may want to make these ships invulnerable so you don't have to keep replacing them if they get destroyed (in my game, there can sometimes be up to five UA/CAR Marauder Phoenixes in Sanctuary, TU casualty is very likely)
- Find the section in the NPC patrol's code that states:
Code: Select all
<drop ref="ship_large_military"/>
- Insert the following code above the aforementioned line:
This code will prevent the specified NPC ship from dropping below 90% hull value.
Code: Select all
<hull min="6000000"/>
- Find the section in the NPC patrol's code that states: